2012-03-17 15 views
6

EDITAR Esta pregunta no trata sobre cómo resolver dependencias usando Ant/Maven/Gradle o whatnots.¿Qué jarrones son exactamente necesarios para incrustar Neo4j?

Estoy tratando de usar Neo4j y estoy un poco confundido por los documentos en cuanto a 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: "Ocupa poco espacio Neo4j es un solo frasco < 500k con una dependencia (la API de Java de transacciones)."

Ésta es precisamente una de las razones que me interesa Neo4j para incrustarla ...

lo que he descargado la edición de la comunidad (GPL) de Neo4j y leer la explicación aquí:

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

que dice: "Extraiga un zip/tarball de descarga de Neo4j y utilice los archivos jar que se encuentran 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 dado, todo lo que Neo4j necesitaba era un jar aparentemente (que es una de las razones por las que estaba interesado en incorporar Neo4j por cierto). Pero ahora al parecer es dos, porque hay una dependencia de alguna API Java Transaction (¿cuál? Un .jar envía con Neo4j?)

El problema es que si miro en ese lib/ dir I ¡lo 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 sistema/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, jarros tiene un peso superior a casi 17 MB (no es "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) lo que necesito para que pueda incrustar Neo4j y ejecutar un simple "¡Hola, mundo!" ¿ejemplo?

Me confunde el documento oficial que dice: "... use los archivos jar que se encuentran en el directorio lib /".

Seguramente no necesito todos de ellos, ¿verdad?

Respuesta

2

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.

+0

+1 ok genial ... Lo intenté con solo el neo4j-kernel, pero faltaba algo de JTA. Ahora intentaré con geronimo-jta. (y luego descubriré paso a paso qué más se necesita según mis necesidades). –

3

El mínimo absoluto para ejecutar el kernel es

neo4j-kernel.jar 
jta.jar 

El resto es Cypher, Lucene de indexación y otras cosas.

Cuestiones relacionadas