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/".
Конечно, мне не нужны все из них, верно?