我们正在托管一个公司存储库,它充当众所周知的存储库(例如Maven Central和Clojars)的代理。我希望Leiningen首先进入企业存储库。只有当公司存储库未能提供工件时,Leiningen才会询问标准存储库。这应该是我所有项目的默认行为。我需要做什么配置?
我已将公司存储库添加为〜/ .lein / profiles.clj中的镜像:
{:user {:mirrors {"our-repo" {:name "our-repo"
:url "http://our-repo/all/"}}}}
不幸的是,此设置没有任何影响。 Leiningen从Maven Central下载文物:
PS> lein repl
Retrieving org/clojure/clojure/1.5.1/clojure-1.5.1.pom from central
...
更新
xsc建议使用指向公司存储库的镜像定义覆盖Maven Central存储库。有用。现在,而不是去外部Maven Repository Leiningen从公司存储库中检索工件。
他/她还建议指定一个额外的存储库定义来安装回退机制。 不幸的是,这并不是很好,因为Leiningen抱怨这个设置:
:repositories detected in user-level profiles! [:user]
See https://github.com/technomancy/leiningen/wiki/Repeatability
这个警告非常烦人。出于这个原因,我会弃权。还有另一种安装回退机制的方法吗?
答案 0 :(得分:3)
这对我有用:
{:user {:mirrors {#".+" {:url "http://nexus.example.com:8081/nexus/content/groups/public"}}
:repositories [["snapshots" {:id "NudaySnapshots"
:url "http://nexus.example.com:8081/nexus/content/repositories/snapshots"}]
["releases" {:id "NudayReleases"
:url "http://nexus.example.com:8081/nexus/content/repositories/releases"
:sign-releases false}]]}
:auth {:repository-auth {#"nexus.example.com" {:username "deployment"
:password "foo bar baz"}}}}
它处理通过我的Nexus镜像解析依赖关系以及使用lein deploy
向其发布工件。
我收到恼人的“重复性”警告,但我正在努力摆脱它。
答案 1 :(得分:2)
就我在Leiningen's example project.clj中所见,您必须使用存储库的名称作为:mirrors
地图中的关键字进行镜像。所以,试试这个:
{:mirrors {"central" { ... }}}
这很可能会完全替换存储库,因此您可能希望再次添加原始文件:
{:mirrors {"central" {:url "..." }}
:repositories {"maven" {:url "http://repo1.maven.org/maven2/"}}}