maven如果镜像失败,则回退到原始版本

时间:2016-01-18 08:34:16

标签: maven maven-3 nexus

我在lan中为maven配置了sonatype-nexus,并使用如下所示的settings.xml中的镜像配置进行连接。

<mirrors>
 <mirror>
  <mirrorOf>*</mirrorOf>
  <name>nexus.sb.karmalab.net</name>
  <url>http://<lan_repo>/remote-repos</url>
</mirror>

如果设置已关闭,此设置会产生问题。 是否有一些选项可以配置镜像连接到远程repo id本地查找失败。

2 个答案:

答案 0 :(得分:0)

Maven Jira具有an issue的此功能,但几年前已关闭,没有得到解决。

答案 1 :(得分:0)

我有一个类似的设置,我的局域网上有一个 Nexus3 存储库管理器设置,当我关闭 Nexus3 存储库管理器时遇到了同样的问题。

根据我阅读的内容,Igor Dvorhak 链接的问题已关闭,该主题最近似乎没有被提及。

无论如何,这里有一个对我有用的解决方法。

您有两个位置可以放置 settings.xml

  1. 用户级别...通常在 ${user.home}/.m2/settings.xml 中提供。
  2. 全局级别...通常在 ${maven.conf}/settings.xml 中提供。

如果定义了用户级别 settings.xml,则它优先于全局级别,但您也可以通过为 Maven 命令提供 -s 标志和 settings.xml 的路径来覆盖它。

您可以在此处了解有关 settings.xml 的更多信息:Maven - Settings Reference

所以我所做的是在用户级别设置镜像,但是当镜像指向的存储库关闭时(即我们自己的设置 lan 存储库),我指示 mvn 命令使用全局 settings.xml默认设置为中央。

当我设置 apache maven 时,我的 ${user.home}/.bashrc 文件中碰巧有一个名为 M2_HOME 的环境变量,因此我将重用该环境变量来构建路径。然后apache maven安装文件夹里面有一个conf文件夹,里面有全局settings.xml。

最后是解决离线镜像站点的命令。

mvn clean install -s $M2_HOME/conf/settings.xml

注意:如果您在 Windows 操作系统上工作,您的路径可能会有所不同。