EDIT . This question is not about how to solve dependencies using Ant / Maven / Gradle or whatnots.
I'm trying to use Neo4j, and I'm a little confused by the docs that I need to implement the very simple “Hello world!”. Neo4j example in the application.
I read in several places that Neo4j was lightweight and that there was only one (and now two) cans where needed.
For example: http://highscalability.com/neo4j-graph-database-kicks-buttox
we can read: "Small footprint. Neo4j is a single bank with a capacity of 500 thousand with one dependency (Java Transaction API).
It is for this reason that I am interested in Neo4j to insert it ...
So, I downloaded the Neo4j community version (GPL) and read the explanation here:
http://docs.neo4j.org/chunked/stable/tutorials-java-embedded-setup.html
which says: "Extract the zip / tarball Neo4j download file and use the jar files found in the lib / directory."
Now this is more than succinct, and I found old posts saying that "the wording has been changed." At one point, everything Neo4j needed was clearly one (which is one of the reasons I was interested in embedding Neo4j btw). But now, apparently, these are two, because there is a dependency on some Java Transaction API (which one: .jar is sent with neo4j?)
The problem is that if I look in this lib / dir, I have some things:
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
And on the / lib system:
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) .
If my Emacs-fu is strong enough, then the bans exceed the weight by almost 17 MB (and not by the "built-in") ... And I did not even insert all the banks from the system / lib /.
So, what is the minimum amount of .jar (and what they are), I need it so that I can embed Neo4j and run the simple "Hello, world!". Example?
I am confused by the official dock saying: "... use the jar files found in the lib / directory.
Don't I really need all of them?