1

因此,我正在阅读有关 TinkerPop 3.0 内容的入门教程。我已经获得了使用 TinkerGraph 东西的基本 API,并且我正在继续尝试与我的本地 Neo4j 实例(社区 2.2.2)进行交互。我正在学习这里的教程:

http://tinkerpop.incubator.apache.org/docs/3.0.0.M9-incubating/

但是,neo4j-gremlin 插件似乎并不像记录的那样存在。gradle 行都不是:

compile group : 'org.apache.tinkerpop', name: 'neo4j-gremlin', version: '3.0.0.M9-incubating'

,也没有通过 gremlin groovy shell 进行以下尝试:

gremlin> :plugin list
==>tinkerpop.server[active]
==>tinkerpop.gephi
==>tinkerpop.utilities[active]
==>tinkerpop.sugar
==>tinkerpop.tinkergraph[active]
gremlin> :install org.apache.tinkerpop neo4j-gremlin 3.0.0.M9-incubating
Error grabbing Grapes -- [unresolved dependency: org.apache.tinkerpop#neo4j-gremlin;3.0.0.M9-incubating: not found]
Display stack trace? [yN] y
java.lang.RuntimeException: Error grabbing Grapes -- [unresolved     dependency: org.apache.tinkerpop#neo4j-gremlin;3.0.0.M9-incubating: not found] 

似乎有效,因为没有人可以解决依赖关系。如果将 M9 更换回至少 M7,或者如果我尝试从 3.0.0-SNAPSHOT 抓取,问题仍然存在。TinkerPop 是否刚刚放弃了对 Neo4j 的支持并且没有更新他们的教程?

4

1 回答 1

3

我猜文档和 Neo4j 在官方发布方面的立场之间存在一些差异。在 TinkerPop 开始在 Apache 软件基金会下发布版本时,Neo4j 已从 M7 前后的存储库中删除(鉴于许可证冲突)。由于许可证问题得到解决,它在 M9 版本发布后被添加回存储库。就目前而言,Apache 已经批准了 Neo4j 的打包,因此允许它作为下一个版本的一部分正式包含在内,下一个版本应该是 GA。

请注意,Neo4j并未为此更改其许可结构。它仍然基于 GPL。然而,GPL 的依赖项没有与 TinkerPop 二进制分发包一起打包,并且源代码分发也没有 GPL 依赖项。这实际上是一个有趣的模型,需要与各方进行相当多的合作才能完成。

解决这个问题实际上很容易,但它涉及到从源代码构建 TinkerPop。以下命令应该这样做:

git clone https://github.com/apache/incubator-tinkerpop.git
cd incubator-tinkerpop
git checkout tags/3.0.0-incubating-rc1
mvn clean install -DskipTests -DincludeNeo4j

请注意,这3.0.0-incubating-rc1是供应商目前正在测试其实现的 GA 的当前候选版本。我假设您已grapeConfig.xml按照 TinkerPop 3 文档中的说明配置文件,这意味着它已配置为查看本地 Maven.m2目录。如果是这样,那应该使您的:install命令以及其他依赖项管理工具正常工作。

于 2015-06-24T18:02:26.083 回答