如何在maven设置中禁用镜像存储库

M.R*_*.R. 15 maven-plugin maven

在我的maven~./.m2/settings.xml中我定义了一个镜像和一些存储库:

 <mirrors>
    <mirror>
    <id>someid</id>
        .....
    </mirro>
 </mirrors>
...

<profiles>
    <profile>
         <id>default</id>
            <activation>
                     <activeByDefault>true</activeByDefault>
                 </activation>
                 <repositories>
            <repository>                                                                    <id>repo....</id>
....

         </profile>
</profiles>
Run Code Online (Sandbox Code Playgroud)

这很好用.

有些项目我想要禁用镜像和默认配置文件.我知道我可以为存储库定义一个单独的配置文件,但我不知道如何告诉maven eclipse插件不使用默认配置文件或特定配置文件.另外:如何更改项目的镜像?

Mar*_*szS 9

不幸的是,使用单个settings.xml是不可能的.在Maven JIRA有特征要求,投票!

解决方法是使用两个settings.xml并运行具有所选配置的maven:

mvn -s my-settings.xml
Run Code Online (Sandbox Code Playgroud)

  • 哇,引用的功能请求现已开放7年. (2认同)
  • 好主意..这个答案节省了我很多时间!谢谢你。 (2认同)

Aar*_*lla 5

复制settings.xml文件,删除mirror条目并告诉 Maven 使用--settings file命令行选项。

使用 XSLT 或XMLStarlet等命令行工具来自动化该过程:

xmlstarlet ed -N 's=http://maven.apache.org/SETTINGS/1.0.0' --delete "//s:mirror" settings.xml
Run Code Online (Sandbox Code Playgroud)

打印一个不包含任何镜像设置的新settings.xml文件。stdout

更新:XML 命名空间最近发生了更改。确保使用与文件顶部的字符串相同的字符串。感谢罗曼·伊万诺夫指出了这一点。

  • 如果基于 XSLT 的工具不可用,请在 sed 中:`sed settings.xml -e "/&lt;mirrors&gt;/,/&lt;\/mirrors&gt;/d"` (4认同)