我有一个名为 Parallel 的Clojure项目,取决于另一个名为 Messaging 的Clojure项目,我使用lein jar
命令生成 messaging-0.1 .0-SNAPSHOT.jar 文件,然后我按照页面https://github.com/kumarshantanu/lein-localrepo上的说明尝试将本地jar依赖项添加到 Parallel 项目。
首先,我在 Parallel 项目的根目录下创建了一个名为 lib 的目录。然后,我使用命令lein localrepo coords messaging-0.1.0-SNAPSHOT.jar | xargs lein localrepo install -r lib
将消息传递库安装到本地存储库 lib 。第三,我将依赖项添加到 Parallel 项目的project.clj文件中,如下所示:
(defproject parallel "0.1.0-SNAPSHOT"
:dependencies [[org.clojure/clojure "1.5.1"]
[...]
[messaging "0.1.0-SNAPSHOT"]]
:plugins [[lein-localrepo "0.5.2"]]
:repositories {"local" ~(str (.toURI (java.io.File. "lib")))})
但是,最后,当我运行lein deps
时,出现以下错误:
Retrieving messaging/messaging/0.1.0-SNAPSHOT/messaging-0.1.0-SNAPSHOT.pom from local
Could not transfer artifact messaging:messaging:pom:0.1.0-SNAPSHOT from/to local (file:/home/mixi/Workspace/Projects/clojure/parallel/lib/): no supported algorithms found
This could be due to a typo in :dependencies or network issues.
我无法弄清楚原因。我对这个问题进行了一些研究,比如Using local jars with Leiningen和How do you configure proprietary dependencies for Leiningen?,但我仍然找不到出路。
那么正确的方法是什么?
答案 0 :(得分:2)
将groupId
添加到messaging
项目,运行lein install
,修改dependencies
。
不需要:repositories
,从〜/ .m2存储库中获取文件。
答案 1 :(得分:0)
当您在:repositories
中提及project.clj
时,它表示从中下载工件的网址。要使用:local-repo
指定本地存储库。请参阅此处:https://github.com/technomancy/leiningen/blob/master/sample.project.clj并搜索:local-repo
。