莱宁根忽略了:某些依赖的镜像

时间:2014-05-07 11:47:04

标签: clojure leiningen

我为我公司的内部工件设置了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依赖。

有没有人知道这里会发生什么?

1 个答案:

答案 0 :(得分:0)

实际上,看起来构建只能成功地从Nuday中删除tools.namespace-0.1.1.pom(我不知道你的project.clj为什么它还试图下载0.2.1和0.2.4工件的版本。)

我建议确认用户可以访问Nexus服务器并且用户也具有写访问权限(假设下载新的代理工件被认为是"写")。我的预感是,Nexus无法代理工件,或者表现得如此糟糕,以至于leiningen放弃镜像并尝试使用常规存储库。