2012-11-06 48 views
5

任何人都可以告訴我一些工作依賴關係,以啓動並運行zeromq和clojure嗎?Clojure&ZeroMQ

我試過幾個,但leiningen不能來接他們:

(找不到中央(http://repo1.maven.org/maven2)神器org.zmq:zmq:jar:2.1.0

[org.zmq/zmq "2.1.0"] 
[org.zmq/jzmq "1.0.0"] 

我編jzmq/usr/local/share/java/jzmq.jar),並將此我project.clj

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

回答

9

有一個2.0-SNAPSHOT here

雷音應該已經加載了clojars回購。

1

您可以創建一個Maven local repository,安裝編譯庫到本地回購,然後將以下添加到您的project.clj

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

類似的問題,我已經回答了前面here

1

不幸的是,ZeroMQ中不存在公共倉庫,在至少在最後一次檢查時(一個月前我認爲)。所以,你必須手動安裝jar:

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

然後你可以使用神器作爲[org.zeromq/jzmq "2.1.0"]project.clj

+0

仍然得到 未能找到工件org.zeromq:jzmq:jar:2.1.0 in central(http://repo1.maven.org/maven2) 找不到工件org.zeromq:jzmq:jar:2.1 .0在clojars(https://clojars.org/repo/) 即使我在.m2/ – DanS

2

我建議的是混合了已經提出的內容,但爲了完整起見,希望給出最終答案,我試試看。

由於依賴關係不在在線倉庫中,我會將jar包含在項目的目錄結構中,例如,在目錄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 

當jar文件被複制到本地資源庫,你如下定義,並在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在Leiningen的wiki中,如果你需要更多一點。

+0

中看到它,謝謝,我最終得到了它的工作。重要的事情似乎是使用以下命令將/ usr/bin/lib添加到java.library.path中:jvm-opts – DanS

1

我能得到它的唯一方法是使用jeromq。

[org.zeromq/jeromq "0.3.2"] 

Jeromq是原生Java。