无法通过gremlin shell安装gremlin-neo4j

时间:2015-06-24 15:58:20

标签: neo4j gremlin tinkerpop3

所以,我正在阅读有关TinkerPop 3.0开始的教程。我已经获得了使用TinkerGraph内容的基本API,并且我正在尝试与我的本地Neo4j实例(Community 2.2.2)进行交互。我在这里完成了教程:

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

但是,neo4j-gremlin插件似乎没有记录存在。没有格斗线:

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的支持,还没有更新他们的教程吗?

1 个答案:

答案 0 :(得分:3)

我猜文件与Neo4j在官方发布方面存在差异。当TinkerPop开始在Apache Software Foundation下发布版本时(出现许可证冲突),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的当前候选版本,供应商现在正在测试他们的实现。我假设您已按照TinkerPop 3文档中的说明配置了grapeConfig.xml文件,这意味着它已配置为查看您当地的Maven .m2目录。如果是这样,那么应该使:install命令与其他依赖管理工具一样工作。