maven设置多个镜像源,按顺序下载依赖
目标
分别配置两个nexus镜像源,目的: 编译时,先从nexus1尝试下载依赖,如果失败,到nexus2下载依赖,再失败,去公网中央仓库下载镜像
配置
settings.xml
<?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">
<mirrors>
<mirror>
<id>nexus1</id>
<mirrorOf>nexus1</mirrorOf>
<url>http://nexus1.com/nexus/repository/maven-delivery/</url>
</mirror>
<mirror>
<id>nexus2</id>
<mirrorOf>nexus2</mirrorOf>
<url>http://nexus2.com/repository/maven-public/</url>
</mirror>
</mirrors>
<!-- 配置连接密钥,如果需要认证 -->
<servers>
<server>
<id>nexus1</id>
<username>demo</username>
<password>demo001</password>
</server>
</servers>
<!-- The resolution of multiple Repositories only works with profiles!-->
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus1</id>
<url>http://nexus1.com/nexus/repository/maven-delivery/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</repository>
<repository>
<id>nexus2</id>
<url>http://nexus2.com/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>nexus1</id>
<url>http://nexus1.com/nexus/repository/maven-delivery/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
<releases>
<enabled>true</enabled>
</releases>
</pluginRepository>
<pluginRepository>
<id>nexus2</id>
<url>http://nexus2.com/repository/maven-public/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>nexus</activeProfile>
</activeProfiles>
</settings>
测试
使用mvn插件下载一个不存在的依赖,查看效果
mvn dependency:get -DgroupId=com.github.ggdefe -DartifactId=ggdefe -Dversion=1.0.0
输出
bash-4.4# mvn dependency:get -DgroupId=com.github.ggdefe -DartifactId=ggdefe -Dversion=1.0.0
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:get (default-cli) @ standalone-pom ---
[INFO] Resolving com.github.ggdefe:ggdefe:jar:1.0.0 with transitive dependencies
Downloading from nexus1: http://nexus1.com/nexus/repository/maven-delivery/com/github/ggdefe/ggdefe/1.0.0/ggdefe-1.0.0.pom
Downloading from nexus2: http://nexus2.com/repository/maven-public/com/github/ggdefe/ggdefe/1.0.0/ggdefe-1.0.0.pom
Downloading from central: https://repo.maven.apache.org/maven2/com/github/ggdefe/ggdefe/1.0.0/ggdefe-1.0.0.pom