如何在settings.xml中仅对某些项目使用<mirrors>和<servers>

时间:2016-09-20 21:34:31

标签: maven

我有一组相关项目,它们使用自托管的Nexus安装作为存储库来下载依赖项。因此,我在~/.m2/settings.xml文件中设置了以下内容:

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd">

  <mirrors>
    <mirror>
      <id>central</id>
      <name>central</name>
      <url>http://myserver/repository/maven-public/</url>
      <mirrorOf>*</mirrorOf>
    </mirror>
  </mirrors>

</settings>

一切正常,但是当我想在与该组项目无关的项目上的同一台机器上工作时,Maven将尝试使用该Nexus存储库来下载依赖项,这在此不可取。点。

我认为要走的路是在我想要使用Nexus存储库的项目的pom.xml中设置一些内容,但我无法弄清楚。

我正在阅读有关Maven个人资料的内容,但似乎并不是正确的选择。 <profiles>应该是与this example <mirrors>相同级别的标记,但我怎么能说该镜像只应用于某些配置文件(我希望在pom中设置)想要使用该回购的.xml项目。

1 个答案:

答案 0 :(得分:0)

您可以使用 -s 参数覆盖默认设置并在运行时选择设置文件:

mvn -s /path/to/alternative/settings.xml package 

如果你正在使用Jenkins,那么这个答案可能会有所帮助