What banks are needed to embed Neo4j?

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?

+6
source share
2 answers

The absolute minimum to run the kernel is

 neo4j-kernel.jar jta.jar 

The rest is Cypher, Lucene indexing, and more.

+3
source

Basically, you only need neo4j-kernel-1.6.1.jar (and the geronimo-jta_1.1_spec transaction API mentioned).

However, this will only give you basic functions. If you want to use other components, such as indexing, query, management tools, etc., you will need other banks.

+2
source

Source: https://habr.com/ru/post/911002/


All Articles