在持续集成工作中,可能会遇到同一个应用所依赖的插件在不同的nexus仓库中,所以在maven的settings.xml文件中需要配置多个nexus仓库,有两种配置方法,一种是repository级别,一种是profile级别。
具体配置如下:
假设我们的两个nexus库的地址如下:
http://10.244.3.99:8081/nexus/content/groups/public/
http://10.244.3.100:8081/nexus/content/groups/public/
1. repository级别
在同一个profile中的repositorys标签下,写两个repository标签,在activeProfiles中启动这个profile。
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 本地仓库的路径。默认值为${user.home}/.m2/repository。 -->
<!-- localRepository>/usr/local/apache-maven-3.3.3/repository_city</localRepository -->
<interactiveMode>true</interactiveMode>
<offline>false</offline>
<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>passwd</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>passwd</password>
</server>
<server>
<id>releases</id>
<username>reader</username>
<password>tydicreader</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>reader</username>
<password>tydicreader</password>
</server>
</servers>
<mirrors>
</mirrors>
<profiles>
<profile>
<id>tydic.repo</id>
<activation>
<activeByDefault>false</activeByDefault>
<jdk>1.8</jdk>
</activation>
<repositories>
<!-- 私有库地址-->
<repository>
<id>nexus</id>
<url>http://10.244.3.99:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>nexus-zt</id>
<url>http://10.244.3.100:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<!--插件库地址-->
<pluginRepository>
<id>nexus</id>
<url>http://10.244.3.99:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
<pluginRepository>
<id>nexus</id>
<url>http://10.244.3.100:8081/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
#启动profiles
<activeProfiles>
<activeProfile>tydic.repo</activeProfile>
</activeProfiles>
</settings>
2. profile级别
增加多个profile,并在activeProfiles中开启多个activeProfile:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!-- 本地仓库的路径。默认值为${user.home}/.m2/repository。 -->
<!-- localRepository>/usr/local/apache-maven-3.3.3/repository_city</localRepository -->
<interactiveMode>true</interactiveMode>
<offline>false</offline>
<servers>
<server>
<id>releases</id>
<username>admin</username>
<password>passwd</password>
</server>
<server>
<id>snapshots</id>
<username>admin</username>
<password>passwd</password>
</server>
<server>
<id>releases</id>
<username>reader</username>
<password>tydicreader</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>reader</username>
<password>tydicreader</password>
</server>
</servers>
<mirrors>
</mirrors>
<profiles>
<profile>
<id>repo</id>
<activation>
<activeByDefault>false</activeByDefault>
<jdk>1.8</jdk>
</activation>
<repositories>
<!-- 私有库地址-->
<repository>
<id>nexus</id>
<url>http://10.244.3.99:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<!--插件库地址-->
<pluginRepository>
<id>nexus</id>
<url>http://10.244.3.99:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
<profile>
<id>repo-1</id>
<activation>
<activeByDefault>false</activeByDefault>
<jdk>1.8</jdk>
</activation>
<repositories>
<!-- 私有库地址-->
<repository>
<id>nexus-zt</id>
<url>http://10.244.3.100:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<!--插件库地址-->
<pluginRepository>
<id>nexus-zt</id>
<url>http://10.244.3.100:8081/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
#启动profiles
<activeProfiles>
<activeProfile>repo</activeProfile>
<activeProfile>repo-1</activeProfile>
</activeProfiles>
</settings>