我为我公司的内部工件设置了Nexus存储库。回购代理也代理了Maven Central,Clojars等。我已经指示Leiningen使用我的仓库,将以下内容添加到我的~/.lein/profiles.clj
:
{:user {:mirrors {#".+" {:name "Nuday"
:url "http://nexus.example.com:8081/nexus/content/groups/public"}}}}
但是,对于我project.clj
中列出的某些依赖项,Leiningen似乎忽略了我的:mirrors
设置。这是一个具有以下依赖项的项目演示:
(defproject com.example.infrastructure/foo "2.1.0"
:dependencies [[org.clojure/data.json "0.2.4"]
[org.clojure/tools.namespace "0.1.1"]])
现在要删除一些缓存的依赖项并编译:
: jmglov@alhana; rm -rf ~/.m2/repository/org/clojure/data.json/
: jmglov@alhana; rm -rf ~/.m2/repository/org/clojure/tools.namespace/
: jmglov@alhana; lein jar
Retrieving org/clojure/tools.namespace/0.1.1/tools.namespace-0.1.1.pom from Nuday
Retrieving org/clojure/tools.namespace/0.2.4/tools.namespace-0.2.4.pom from Nuday
Retrieving org/clojure/tools.namespace/0.2.1/tools.namespace-0.2.1.pom from Nuday
Retrieving org/clojure/tools.namespace/0.2.4/tools.namespace-0.2.4.jar from Nuday
Retrieving org/clojure/tools.namespace/0.1.1/tools.namespace-0.1.1.jar from central
Retrieving org/clojure/data.json/0.2.4/data.json-0.2.4.pom from central
Retrieving org/clojure/data.json/0.2.4/data.json-0.2.4.jar from central
Created foo-2.1.0.jar
正如您所看到的,org.clojure/tools.namespace
是从我的私人" Nuday"回购,而org.clojure/data.json
直接进入"中心"回购。我已经使用Wireshark验证我的repo根本没有被查询org.clojure/data.json
依赖。
有没有人知道这里会发生什么?
答案 0 :(得分:0)
实际上,看起来构建只能成功地从Nuday中删除tools.namespace-0.1.1.pom
(我不知道你的project.clj
为什么它还试图下载0.2.1和0.2.4工件的版本。)
我建议确认用户可以访问Nexus服务器并且用户也具有写访问权限(假设下载新的代理工件被认为是"写")。我的预感是,Nexus无法代理工件,或者表现得如此糟糕,以至于leiningen放弃镜像并尝试使用常规存储库。