无法通过 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
命令和其他依赖管理工具一样工作。
所以,我正在阅读有关开始使用 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
命令和其他依赖管理工具一样工作。