Какие именно jar нужны для встраивания Neo4j?

EDIT Этот вопрос не о том, как решать зависимости с помощью Ant/Maven/Gradle или еще чего-то.

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

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

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

мы можем прочитать: "Небольшой размер. Neo4j – это один JAR-файл размером ‹500 КБ с одной зависимостью (API транзакций Java)".

Это как раз одна из причин, по которой я заинтересован в Neo4j для его встраивания...

Поэтому я загрузил версию сообщества (GPL) Neo4j и прочитал объяснение здесь:

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

в котором говорится: "Извлеките загрузочный файл Neo4j zip/tarball и используйте файлы jar, найденные в каталоге lib/."

Теперь это более чем кратко, и я нашел старые сообщения, в которых говорилось, что «формулировка была изменена». В какой-то момент все, что нужно Neo4j, это, по-видимому, одна банка (что, кстати, является одной из причин, по которой я был заинтересован во внедрении Neo4j). Но теперь, по-видимому, их два, потому что есть зависимость от некоторого 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 МБ (не то, чтобы "встраиваемый")... И я даже не вставил все jar-файлы из system/lib /.

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

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

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


person Cedric Martin    schedule 17.03.2012    source источник


Ответы (2)


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

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

person Bozho    schedule 17.03.2012
comment
+1 ок, отлично... Я пробовал только с ядром neo4j, но некоторые JTA действительно отсутствовали. Сейчас попробую с geronimo-jta. (и тогда я шаг за шагом узнаю, что еще нужно в зависимости от моих потребностей). - person Cedric Martin; 17.03.2012

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

neo4j-kernel.jar
jta.jar

Остальное — Cypher, индексирование Lucene и прочее.

person Peter Neubauer    schedule 18.03.2012