4

我正在参与两个项目,这两个项目都使用私有 maven 存储库(使用 nexus)。由于他们都使用自己的 3rd 方库,我想为每个项目设置相应的镜像。幸运的是,我可以自由编辑 project1 的 pom.xml。

有什么方法可以注入一些变量或设置,以便我的 ~/.m2/settings.xml 将 mirror1 用于 project1,将 mirror2 作为默认值(用于 project2)?

好吧..我查找了许多stackoverflow问题和答案,但我是maven的新手,我无法理解并在我的项目中采用这些答案..

4

2 回答 2

4

不幸的是,没有办法在单个设置文件中支持多个镜像定义。

您将需要创建两个 maven 设置文件,然后参数化 maven 构建,例如mvn <cmd> -s <path/to/settings.xml>.

于 2013-01-27T09:24:48.153 回答
1

maven 3.3.1之后,使用project-settings-extension${basedir}/.mvn/settings.xml加载项目设置,在每个项目中放入项目特定的镜像。

${basedir}/.mvn/extensions.xml

    <extensions xmlns="http://maven.apache.org/EXTENSIONS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/EXTENSIONS/1.0.0 http://maven.apache.org/xsd/core-extensions-1.0.0.xsd">
      <extension>
        <groupId>com.github.gzm55.maven</groupId>
        <artifactId>project-settings-extension</artifactId>
        <version>0.1.1</version>
      </extension>
    </extensions>

${basedir}/.mvn/settings.xml

<settings>
  <mirrors>
    <mirror>
      <id>id</id>
      <url>https://url-for-this-project/</url>
      <mirrorOf>central</mirrorOf>
    </mirror>
  </mirrors>
</settings>
于 2018-04-11T17:43:39.820 回答