Maven:如何配置settings.xml文件以添加存储库?

时间:2014-01-28 21:06:15

标签: maven settings nexus repository

我在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?

你能给我一些示例代码并附上一些解释吗?

非常感谢你!

2 个答案:

答案 0 :(得分:1)

这听起来就像你说的那样,你想引入一些仅在non_public_project.jar上可用的依赖http://non_public_nexus_repo,并且无法在3默认回购中找到:

  • apache snapshots
  • codehaus snapshots
  • Maven central

如果有,那么您的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在客户端上完成所有解析要快得多。

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