2012-11-06 11 views
5

किसी को भी मुझे कुछ काम कर रहे निर्भरता बता सकते हैं zeromq और clojure साथ बनाने और चलाने के लिए?Clojure और ZeroMQ

मैं कई की कोशिश की है लेकिन leiningen उन्हें लाने के लिए सक्षम नहीं है:

[org.zmq/zmq "2.1.0"] 
[org.zmq/jzmq "1.0.0"] 
(केंद्रीय (http://repo1.maven.org/maven2) में विरूपण साक्ष्य org.zmq:zmq:jar:2.1.0 नहीं खोजा जा सका)

मैं jzmq (/usr/local/share/java/jzmq.jar) तैयार की है और मेरे project.clj को यह कहा:

:native-path "/usr/local/lib" 

उत्तर

1

आप एकबना सकते हैं 0, अपने स्थानीय रेपो में संकलित पुस्तकालय स्थापित करें, और उसके बाद, अपने project.clj

:repositories {"local" ~(str (.toURI (java.io.File. "your_local_repository_path")))} 

इसी प्रकार के प्रश्न के लिए निम्न जोड़ने के लिए, मैं जवाब दे दिया है पहले here

1

दुर्भाग्य से, ZeroMQ, सार्वजनिक भंडार में मौजूद नहीं है पर पिछली बार मैं जाँच की कम से कम (एक महीने पहले मुझे लगता है कि)। तो आप मैन्युअल रूप से जार स्थापित करने के लिए है:

mvn install:install-file -Dfile=/usr/local/share/java/jzmq.jar -DgroupId=org.zeromq \ 
-DartifactId=jzmq -Dversion=2.1.0 -Dpackaging=jar 

तो फिर आप अपने project.clj में [org.zeromq/jzmq "2.1.0"] के रूप में विरूपण साक्ष्य का उपयोग कर सकते हैं।

लें पहले से ही clojars रेपो भरी हुई होनी चाहिए:

+0

फिर भी हो रही विरूपण साक्ष्य org.zeromq नहीं मिल सका: jzmq: जार: 2.1.0 में केंद्रीय (http://repo1.maven.org/maven2) विरूपण साक्ष्य org.zeromq नहीं मिल सका: jzmq: जार: 2.1 .0 क्लोजर्स में (https://clojars.org/repo/) भले ही मैं इसे देखता हूं .m2/ – DanS

2

जो मैं प्रस्तावित करता हूं उसका मिश्रण पहले से प्रस्तावित किया गया है, लेकिन पूर्णता के लिए और उम्मीद है कि अंतिम जवाब देने के लिए मैं इसे आज़माता हूं।

चूंकि निर्भरता ऑनलाइन रिपोज़ में नहीं है, इसलिए इसमें परियोजना की निर्देशिका संरचना में जार शामिल होंगे, उदा। निर्देशिका repository और परियोजना की अन्य फ़ाइलों के रूप में स्रोत नियंत्रण प्रणाली में रखने में। यह परियोजना का एक महत्वपूर्ण हिस्सा है और निर्भरता के बिना यह नहीं चलेगा।

इस निर्देशिका में मैं Maven Install plugin की मदद से जार की बचत होगी।

(defproject clojure-interal-repo-test "0.1.0-SNAPSHOT" 
    :dependencies [[org.clojure/clojure "1.4.0"] 
       [org.zeromq/jzmq "2.1.0"]] 
    :repositories [["zeromq-repository" {:url  "file:repository" 
             :snapshots false 
             :checksum :ignore 
             :update :never}]]) 

परियोजना के भीतर, चलाने lein2 deps :tree इसकी सत्यता को सत्यापित करने के लिए:

mvn install:install-file \ 
    -Dfile=/usr/local/share/java/jzmq.jar \ 
    -DgroupId=org.zeromq \ 
    -DartifactId=jzmq \ 
    -Dversion=2.1.0 \ 
    -Dpackaging=jar \ 
    -DlocalRepositoryPath=repository 

जार फ़ाइल स्थानीय भंडार में कॉपी किया जाता है, आप इसे और project.clj में निर्भरता के रूप में निम्नानुसार परिभाषित करते हैं।

$ lein2 deps :tree 
Retrieving org/zeromq/jzmq/2.1.0/jzmq-2.1.0.jar (4k) from file:repository/ 
[org.clojure/clojure "1.4.0"] 
[org.zeromq/jzmq "2.1.0"] 

कृपया ध्यान दें कि 4k ऊपर मैं इसे बाहर का परीक्षण करने के लिए बनाया एक नकली फ़ाइल का आकार है।

लीनिंगेन की विकी में दस्तावेज़ Repeatability पढ़ें और आपको थोड़ा और चाहिए।

+0

धन्यवाद, मुझे अंत में काम मिल गया। महत्वपूर्ण बात यह है कि java.library.path के साथ/usr/bin/lib को जोड़ना: jvm-opts – DanS

1

एक ही रास्ता मैं यह काम करने के लिए मिल सकता है jeromq उपयोग करने के लिए किया गया था।

[org.zeromq/jeromq "0.3.2"] 

जेरोम मूल जावा है।