2012-03-17 32 views
6

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?

Trả lời

2

Về cơ bản, bạn chỉ cần neo4j-kernel-1.6.1.jar (và API giao dịch được đề cập geronimo-jta_1.1_spec).

Tuy nhiên, điều này sẽ chỉ cung cấp cho bạn chức năng cơ bản. Nếu bạn muốn sử dụng các phần khác, như lập chỉ mục, truy vấn, công cụ quản lý, v.v., bạn sẽ cần các lọ khác.

+0

+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). –

3

tối thiểu tuyệt đối để chạy các hạt nhân là

neo4j-kernel.jar 
jta.jar 

Phần còn lại là Cypher, Lucene lập chỉ mục và các công cụ khác.

Các vấn đề liên quan