maven repository setting.xml mirrorof

时间:2016-02-08 08:15:49

标签: maven repository config

mirrorOf

id=nexus-osc的用途是什么? maven会先尝试从nexus-osc-thirdparty然后maven2然后uint8获取jar吗? 我已经检查了maven mirror setting guide,但我仍然无法理解。

1 个答案:

答案 0 :(得分:8)

引用Maven documentation about mirrors

  

要配置给定存储库的镜像,请在设置文件(${user.home}/.m2/settings.xml)中提供该镜像,为新存储库提供其自己的ID和URL,并指定作为ID的mirrorOf设置您正在使用镜像的存储库。

这意味着mirrorOf指向现有存储库声明,并将Maven配置为在尝试连接指定存储库时使用该镜像。

我们举一个例子。您有一个项目,其项目中定义了以下存储库:

<project>
  ...
  <repositories>
    <repository>
      <id>my-internal-site</id>
      <url>http://myserver/repo</url>
    </repository>
  </repositories>
  ...
</project>

在您的设置中使用以下声明:

<settings>
  ...
  <mirrors>
    <mirror>
      <id>UK</id>
      <name>UK Central</name>
      <url>http://uk.maven.org/maven2</url>
      <mirrorOf>my-internal-site</mirrorOf>
    </mirror>
  </mirrors>
  ...
</settings>

这意味着每当Maven尝试从my-internal-site存储库下载库时,它实际上不会使用http://myserver/repo,而是使用镜像声明并从{{{{}}下载库。 1}}。

定义任何订单。它只是声明Maven需要下载工件来代替镜像存储库。

指定http://uk.maven.org/maven2告诉Maven您正在镜像Maven Central存储库,这是Maven从中下载工件的默认位置。

因此,当您拥有一个中央内部存储库并且每个Maven请求都通过该存储库管理器时,通常在企业上下文中使用镜像。