我在settings.xml文件中有这个镜像:
<mirrors>
<mirror>
<id>internal-repository</id>
<name>Maven Repository Manager running on repo.mycompany.com</name>
<url>http://nexus_server.mycompany.com/nexus/XXX</url>
<mirrorOf>*</mirrorOf>
</mirror>
</mirrors>
现在我需要一个插件和一个我在这个存储库中找不到的依赖项。我会要求添加它们。但首先我需要测试它们。
所以在这里,我需要在settings.xml中添加其他存储库http:\ NEW_REP_URL。所以我希望Maven从我添加的存储库中获取依赖/插件,如果它没有在公司的nexus中找到它。
换句话说,如何在存储库之间建立优先级:如果没有在本地缓存中找到,那么就在公司的关系中。如果在我们公司的nexus中找不到,那么在http:\ NEW_REP_URL?
你能给我一些示例代码并附上一些解释吗?
非常感谢你!
答案 0 :(得分:1)
这听起来就像你说的那样,你想引入一些仅在non_public_project.jar
上可用的依赖http://non_public_nexus_repo
,并且无法在3默认回购中找到:
如果有,那么您的settings.xml
就可以了:指向您公司的Nexus服务器的mirror
个。{/ p>
Nexus服务器本身需要配置为声明proxy repository(也称为外部仓库或远程仓库)。如果Nexus无法在本地或在Apache / Codehaus / Central上找到有问题的jar,那么它会查找您指定的NEW_REP_URL位置。
希望有所帮助。
答案 1 :(得分:1)
您应该在Nexus中创建代理仓库并将其添加到用于访问Nexus的组中。这在Nexus书中有更详细的描述,例如在about Maven configuration一章中。
主要优点是你可以拥有一大堆开发人员,CI服务器等,不需要更改设置文件,只需添加更多,就可以为所有这些文件添加更多的代理存储库和工件。小组。
通过Nexus中的组解析这些存储库也比让Maven在客户端上完成所有解析要快得多。
顺便说一下。存储库的优先级由组中存储库的顺序决定。