java - ¿Qué jarras son exactamente necesarios para incrustar Neo4j?
dependencies (2)
EDITAR Esta pregunta no trata sobre cómo resolver dependencias usando Ant / Maven / Gradle o whatnots.
Intento utilizar Neo4j y los documentos me confunden un poco sobre lo que necesito para insertar un muy simple "¡Hola, mundo!" Ejemplo de Neo4j en una aplicación.
He leído en varios lugares que Neo4j era liviano y que solo uno (y ahora dos) frascos donde era necesario.
Por ejemplo aquí: http://highscalability.com/neo4j-graph-database-kicks-buttox
podemos leer: "Pequeña huella. Neo4j es un solo tarro <500k con una dependencia (la API de transacción de Java)".
Esta es precisamente una de las razones por las que estoy interesado en Neo4j para incrustarlo ...
Así que descargué la edición de comunidad (GPL) de Neo4j y leí la explicación aquí:
http://docs.neo4j.org/chunked/stable/tutorials-java-embedded-setup.html
que dice: "Extrae un zip / tarball de descarga de Neo4j y utiliza los archivos jar encontrados en el directorio lib /".
Ahora que es más que conciso y he encontrado mensajes antiguos que dicen que "la redacción ha cambiado". En un momento, todo lo que Neo4j necesitaba era aparentemente un contenedor (que es una de las razones por las que estaba interesado en incorporar Neo4j por cierto). Pero ahora, aparentemente, son dos, porque hay una dependencia en algunas API de transacción de Java (¿cuál se envió? A .jar con neo4j ?)
El problema es que si miro ese lib / dir tengo bastantes cosas:
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
Y en 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)
.
Si mi Emacs-fu es lo suficientemente fuerte, los frascos superiores a un peso de casi 17 MB (no ese "incrustable") ... Y ni siquiera pegué todos los frascos del sistema / lib / .
Entonces, ¿cuál es el número mínimo de .jar (y cuáles son) que necesito para poder incrustar Neo4j y ejecutar un simple "¡Hola, mundo!" ¿ejemplo?
Estoy confundido por el documento oficial que dice: "... use los archivos jar que se encuentran en el directorio lib /" .
Seguramente no los necesito a todos ¿verdad?
Básicamente, solo necesita neo4j-kernel-1.6.1.jar
(y la transacción mencionada API geronimo-jta_1.1_spec
).
Sin embargo, esto le dará solo la funcionalidad básica. Si desea usar otras partes, como indexación, consultas, herramientas de administración, etc., necesitará otros frascos.
El mínimo absoluto para ejecutar el kernel es
neo4j-kernel.jar
jta.jar
El resto es Cypher, indexación Lucene y otras cosas.