EDIT Câu hỏi này không phải là về cách giải quyết các phụ thuộc bằng cách sử dụng Ant/Maven/Gradle hoặc whatnots.Lọ nào chính xác là cần thiết để nhúng Neo4j?
Tôi đang cố gắng sử dụng Neo4j và tôi hơi bối rối bởi các tài liệu về những gì tôi cần để nhúng "Rất đơn giản, thế giới!" Ví dụ Neo4j trong ứng dụng.
Tôi đã đọc ở một số nơi Neo4j nhẹ và chỉ một (và bây giờ là hai) lọ khi cần thiết.
Ví dụ ở đây: http://highscalability.com/neo4j-graph-database-kicks-buttox
chúng ta có thể đọc: ". Thiết kế nhỏ gọn Neo4j là một jar < 500k duy nhất với một sự phụ thuộc (API Java Transaction)"
Đây chính là một trong những lý do tôi quan tâm đến Neo4j để nhúng nó ...
Vì vậy, tôi đã tải về phiên bản cộng đồng (GPL) của Neo4j và đọc lời giải thích ở đây:
http://docs.neo4j.org/chunked/stable/tutorials-java-embedded-setup.html
có nội dung: "Giải nén tệp zip/tarball tải xuống Neo4j và sử dụng tệp jar được tìm thấy trong thư mục lib /."
Bây giờ thì ngắn gọn hơn và tôi đã tìm thấy các thư cũ cho biết rằng "từ ngữ đã được thay đổi". Tại một thời điểm, tất cả những gì Neo4j cần là một cái bình (đây là một trong những lý do tôi quan tâm đến việc nhúng Neo4j btw). Nhưng bây giờ dường như nó là hai, bởi vì có một sự phụ thuộc vào một số API giao dịch Java (cái nào? Một .jar vận chuyển với neo4j?)
Vấn đề là nếu tôi nhìn vào đó lib/ dir tôi ve đã khá một số điều:
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
Và trong 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)
.
Nếu Emacs-fu của tôi đủ mạnh các chai ở trên ở mức gần 17 MB (không phải là "có thể nhúng") ... Và tôi thậm chí không dán tất cả các lọ từ hệ thống/lib/.
Vì vậy, số lượng tối thiểu là .jar (và đó là chúng) tôi cần để tôi có thể nhúng Neo4j và chạy "Hello, world!" Đơn giản! thí dụ?
Tôi bị nhầm lẫn bởi tài liệu chính thức nói: "... sử dụng các tệp jar được tìm thấy trong thư mục lib /".
Chắc chắn tôi không cần tất cả trong số họ phải không?
+1 ok tuyệt vời ... Tôi đã thử chỉ với neo4j-hạt nhân nhưng một số JTA đã thực sự mất tích. Bây giờ tôi sẽ thử với geronimo-jta. (và sau đó tôi sẽ khám phá từng bước những gì khác là cần thiết tùy thuộc vào nhu cầu của tôi). –