解决maven配置多镜像不生效

前言

如下情况:maven配置多镜像,一般情况只走一个能访问到的镜像。

  <mirrors>
        <mirror>
            <id>xxxreleases</id>
            <mirrorOf>*</mirrorOf>
            <name>xxxreleases</name>
            <url>http://mirrors.xxx.com:8081/repository/xxxreleases/</url>
        </mirror>
        <mirror>
          <id>aliyunmaven</id>
          <mirrorOf>*</mirrorOf>
          <name>阿里云公共仓库</name>
          <url>https://maven.aliyun.com/repository/public</url>
        </mirror> 
  </mirrors>

配置多镜像

方法一 在settings.xml配置

  1. 把之前<mirrors>标签里的内容注释掉
  2. 设置镜像
<profiles>
  <!-- 私服 -->
  <profile>
      <id>xxxreleases</id>
      <repositories>
          <repository>
            <id>xxxreleases_id</id>
            <url>http://mirrors.xxx.com:8081/repository/xxxreleases/</url>
            <releases>
              <enabled>true</enabled>
            </releases>
            <snapshots>
              <enabled>false</enabled>
            </snapshots>
          </repository>
      </repositories>
  </profile> 
  <!-- 阿里云 -->
  <profile>
      <id>aliyun</id>
      <repositories>
          <repository>
            <id>aliyun_id</id>
            <url>https://maven.aliyun.com/repository/public</url>
            <releases>
              <enabled>true</enabled>
            </releases>
            <snapshots>
              <enabled>false</enabled>
            </snapshots>
          </repository>
      </repositories>
  </profile> 
<profiles>
  1. 激活镜像
<activeProfiles>
     <activeProfile>xxxreleases</activeProfile>
     <activeProfile>aliyun</activeProfile>
</activeProfiles>

注意:仓库查找顺序是profiles中配置的仓库的倒序,即从下往上遍历,与activeProfiles配置顺序无关。

方法二 在pom.xml配置

为项目配置镜像。( 如若pom.xml 和 setting.xml 同时配置了,以 pom.xml 为准。)

  <repositories>
    <repository>
      <id>xxxreleases</id>
      <name>xxxreleases</name>
      <url>http://mirrors.xxx.com:8081/repository/xxxreleases/</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
         <enabled>true</enabled>
      </snapshots>
    </repository>
  </repositories>