无法通过 gremlin 安装 gremlin-neo4j shell

Unable to install gremlin-neo4j through gremlin shell

所以,我正在阅读有关开始使用 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 的支持并且没有更新他们的教程吗?

我想文档和 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 的当前候选版本,供应商目前正在测试其实施。我假设您已经按照 TinkerPop 3 文档中的描述配置了 grapeConfig.xml 文件,这意味着它被配置为查看本地 Maven .m2 目录。如果是这样,那应该让你的 :install 命令和其他依赖管理工具一样工作。