5

谁能告诉我一些工作依赖项来启动和运行 zeromq 和 clojure?

我已经尝试了几个,但 leiningen 无法获取它们:

org.zmq:zmq:jar:2.1.0(在中央找不到工件(http://repo1.maven.org/maven2))

[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"
4

5 回答 5

9

这里有一个 2.0-SNAPSHOT :

Lein 应该已经加载了 clojars 存储库。

于 2012-11-07T09:28:19.690 回答
2

我提议的是已经提议的混合,但为了完整起见并希望给出最终答案,我试一试。

由于依赖项不在在线存储库中,我会将 jar 包含在项目的目录结构本身中,例如在目录中repository,并将其作为项目的其他文件保存在源代码控制系统中。它是项目的重要组成部分,没有依赖项就无法运行。

在这个目录中,我将在Maven Install plugin的帮助下保存 jar 。

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如下所示:

(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以验证其正确性。

$ 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上面是我为测试它而创建的假文件的大小。

如果您需要更多信息,请阅读 Leiningen wiki 中的文档可重复性。

于 2012-11-08T18:19:09.213 回答
1

您可以创建一个Maven 本地存储库,将编译后的库安装到本地存储库中,然后将以下内容添加到您的project.clj

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

类似的问题,我之前在这里回答过

于 2012-11-07T09:22:22.833 回答
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.

于 2012-11-07T09:24:47.943 回答
1

我可以让它工作的唯一方法是使用 jeromq。

[org.zeromq/jeromq "0.3.2"]

Jeromq 是原生 Java。

于 2014-02-15T04:13:40.947 回答