我正在参与两个项目,这两个项目都使用私有maven存储库(使用nexus)。 由于他们都使用自己的第三方库,我想为每个项目设置相应的镜像。幸运的是,我可以自由编辑project1的pom.xml。
有没有办法可以注入一些变量或设置,以便我的〜/ .m2 / settings.xml使用mirror1作为project1,而mirror2作为默认值(对于project2)?
嗯..我查了很多stackoverflow问题和答案,但我是maven的新手,我无法理解并在我的项目中采用这些答案..
答案 0 :(得分:4)
不幸的是,无法在单个设置文件中支持多个镜像定义。
您需要创建两个maven设置文件,然后参数化maven构建,例如: mvn <cmd> -s <path/to/settings.xml>
。
答案 1 :(得分: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.0.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>