2014-01-28 150 views
1

我在我的settings.xml文件这面镜子:Maven:如何配置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> 

现在我需要一个插件,我不能在这个库中找到的依赖。我会要求添加它们。但首先我需要测试它们。

所以在这里,我需要添加其他存储库的http:\ NEW_REP_URL Settings.XML中。所以我希望Maven从我添加的存储库中获取依赖项/插件,如果它没有在公司的联系中找到它的话。

换句话说,如何在存储库之间做工作重点:如果在本地缓存中找不到,则在公司的关系。如果在我们公司的联系中找不到,那么在http:\ NEW_REP_URL?

你能不能给我一些解释相关的样本代码?

非常感谢!

+0

这可能是一个很好的提示:http://maven.apache.org/guides/mini/guide-mirror-settings.html#Advanced_Mirror_Specification –

+0

感谢您的链接。但我已经经历了。说实话,这对我来说并不是很清楚......:/ – Farah

+0

这个存储库位于你的公司吗?我认为你可以在nexus中央仓库中添加这个新的仓库 –

回答

1

你应该创造的Nexus代理回购并将其添加到您用来访问的Nexus组。这在Nexus手册中有更详细的描述,例如在章节about Maven configuration中。

主要的优势是你可以有一大堆开发人员,CI服务器等,不需要更改设置文件,只需添加更多的代理存储库和工件,只需添加更多的是团队。

通过Nexus中的组来解析这些存储库比Maven在客户端上完成所有解析要快得多。

而顺便说一句。存储库的优先级由组中的存储库的顺序决定。

1

这听起来像你说的是什么,你想在一些依赖non_public_project.jar这是只有在http://non_public_nexus_repo可用,并且不能在3个默认回购发现拉:

  • 阿帕奇快照
  • Codehaus的快照
  • Maven的中央

如果是这样,那么你的settings.xml是好的:单mirror pointin g到您公司的Nexus服务器。

这是需要被配置为宣告proxy repository(又名外部回购或远程回购)Nexus的服务器本身。如果的Nexus无法找到问题的罐子在本地或在Apache/Codehaus的/中心,然后它会在您指定的位置NEW_REP_URL。

希望有所帮助。

相关问题