Какие именно банки нужны для встраивания Neo4j? - PullRequest
6 голосов
/ 17 марта 2012

РЕДАКТИРОВАТЬ Этот вопрос не о том, как решить зависимости с помощью Ant / Maven / Gradle или whatnots.

Я пытаюсь использовать Neo4j, и меня немного смущаетдокументы о том, что мне нужно вставить очень простое «Привет, мир!»Пример Neo4j в приложении.

В нескольких местах я читал, что Neo4j был легковесным и что только один (а теперь два) баночки там, где это необходимо.

Например, здесь: http://highscalability.com/neo4j-graph-database-kicks-buttox

мы можем прочитать: "Небольшая занимаемая площадь. Neo4j - это одна банка <500 КБ с одной зависимостью (Java Transaction API)." </em>

Это как раз одна из причинЯ заинтересован в Neo4j, чтобы встроить его ...

Итак, я скачал общественную версию (GPL) Neo4j и прочитал объяснение здесь:

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

которая гласит: «Извлеките загруженный Neo4j zip / tarball и используйте файлы jar, находящиеся в каталоге lib /.»

Теперь это более чем кратко, и я нашел старые сообщения, в которых говоритсячто «формулировка была изменена».В какой-то момент все, что нужно Neo4j, было, по-видимому, один jar (это одна из причин, по которой я заинтересовался встраиванием Neo4j, кстати).Но теперь, видимо, их два, потому что есть зависимость от некоторого Java Transaction API (который? A .jar поставляется с neo4j ?)

Проблема в том, что еслиЯ смотрю в этом lib / dir У меня есть несколько вещей:

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 достаточно силен, то банок выше веса почти на 17 МБ (не то чтобы "встраиваемый") ... И я даже не вставил все банки из system / lib/.

Итак, какое минимальное количество .jar (и каковы они) мне нужно, чтобы я мог встроить Neo4j и запустить простой «Привет, мир!"пример?

Я смущен официальным документом, который говорит: "... используйте файлы jar, находящиеся в каталоге lib /" .

Конечно, я нене нужно всех из них, верно?

Ответы [ 2 ]

3 голосов
/ 18 марта 2012

Абсолютный минимум для запуска ядра:

neo4j-kernel.jar
jta.jar

Остальное - Cypher, Lucene indexing и другие вещи.

3 голосов
/ 17 марта 2012

По сути, вам нужно только neo4j-kernel-1.6.1.jar (и упомянутый API транзакции geronimo-jta_1.1_spec).

Однако это даст вам только основные функциональные возможности.Если вы хотите использовать другие части, такие как индексирование, запросы, инструменты управления и т. Д., Вам понадобятся другие файлы jar.

...