嵌入Neo4j需要哪些罐子?

时间:2012-03-17 17:47:18

标签: java jar dependencies neo4j

编辑这个问题不是关于如何使用Ant / Maven / Gradle或其他东西来解决依赖关系。

我正在尝试使用Neo4j,我对文档有点困惑,因为我需要嵌入一个非常简单的“Hello,world!”应用程序中的Neo4j示例。

我在几个地方读过Neo4j是轻量级的,而且只需要一个(现在是两个)罐子。

例如:http://highscalability.com/neo4j-graph-database-kicks-buttox

我们可以阅读:“占地面积小.Neo4j是一个带有一个依赖的单个< 500k jar(Java Transaction API)。”

这正是我对Neo4j感兴趣的原因之一......

所以我下载了Neo4j的社区版(GPL),并在此处阅读说明:

http://docs.neo4j.org/chunked/stable/tutorials-java-embedded-setup.html

其中说:“提取Neo4j下载zip / tarball,并使用lib /目录中的jar文件。”

现在这不仅仅是简洁而且我发现旧消息说“措辞已经改变”。有一点,Neo4j所需要的只是一个罐子(这是我有兴趣嵌入Neo4j btw的原因之一)。但现在显然它是两个,因为它依赖于某些Java Transaction API(其中一个 .jar neo4j 一起提供?)

问题是,如果我查看 lib / 目录,我有很多东西:

1115454 lib/neo4j-kernel-1.6.1.jar
153707  lib/neo4j-graph-algo-1.6.1.jar
222791  lib/neo4j-shell-1.6.1.jar
8865464 lib/scala-library-2.9.0-1.jar
43530   lib/neo4j-jmx-1.6.1.jar
590503  lib/neo4j-kernel-1.6.1-tests.jar
23954   lib/neo4j-community-1.6.1.jar
28023   lib/neo4j-udc-1.6.1.jar
1517975 lib/neo4j-cypher-1.6.1.jar
51662   lib/neo4j-graph-matching-1.6.1.jar
16030   lib/geronimo-jta_1.1_spec-1.1.1.jar
143177  lib/neo4j-lucene-index-1.6.1.jar
1466301 lib/lucene-core-3.5.0.jar
118875  lib/server-api-1.6.1.jar
92850   lib/org.apache.servicemix.bundles.jline-0.9.94_1.jar

system / lib

27461   system/lib/blueprints-neo4j-graph-1.1.jar
72650   system/lib/jettison-1.3.jar
628626  system/lib/rrd4j-2.0.7.jar
17985   system/lib/asm-analysis-3.2.jar
177174  system/lib/jetty-util-6.1.25.jar
109043  system/lib/commons-io-1.4.jar
755981  system/lib/neo4j-server-1.6.1.jar
35910   system/lib/gremlin-java-1.4.jar
46367   system/lib/jsr311-api-1.1.1.jar
36551   system/lib/asm-util-3.2.jar
206035  system/lib/commons-beanutils-core-1.8.0.jar
227122  system/lib/jackson-core-asl-1.8.3.jar
33094   system/lib/asm-commons-3.2.jar
17308   system/lib/jcl-over-slf4j-1.6.1.jar
21878   system/lib/asm-tree-3.2.jar
12359   system/lib/log4j-over-slf4j-1.6.1.jar
.
.   (skipped a few jars from system/lib here)
.  

如果我的Emacs-fu足够强大, jars 超过重量接近17 MB(不是那种“嵌入式”)......而且我甚至没有粘贴来自的所有罐子系统/ LIB /

那么我需要的 .jar (以及它们是什么)的最小数量是多少,以便我可以嵌入Neo4j并运行一个简单的“Hello,world!”示例

我对官方文档说:“...使用lib /目录中的jar文件”感到困惑。

当然我不需要所有吗?

2 个答案:

答案 0 :(得分:3)

基本上,您只需要neo4j-kernel-1.6.1.jar(以及提到的交易API geronimo-jta_1.1_spec)。

但是,这只会为您提供基本功能。如果你想使用其他部分,比如索引,查询,管理工具等,你需要其他的罐子。

答案 1 :(得分:3)

运行内核的绝对最小值是

neo4j-kernel.jar
jta.jar

其余的是Cypher,Lucene索引和其他东西。