maven配置多仓库地址

背景

由于接了东南亚的项目,基础代码还是一套,所以代码需要发版时需要发布到两个私服仓库的地址

思路

利用maven的profile标签
一个setting.xml配置两套环境
如果是IDEA的话 可以手动选择使用哪个profile
在这里插入图片描述
也可以在命令行中:
mvn deploy -P profileName

只不过每次发布的时候 需要修改pom文件中的url

    <distributionManagement>
       <repository>
           <id>asia-releases</id>
           <name>Nexus Release Repository</name>
           <url>http://test1/repository/maven-releases/</url>
       </repository>
       <snapshotRepository>
           <id>asia-snapshots</id>
           <name>Nexus Snapshot Repository</name>
           <url>http://test1/repository/maven-snapshots/</url>
       </snapshotRepository>
    </distributionManagement>

问题

1、两个仓库有不同的镜像地址

镜像匹配 mirrorOf 规则
* = everything
external:* = everything not on the localhost and not file based.
repo,repo1 = repo or repo1
*,!repo1 = everything except repo1

所以在setting.xml文件中需要

<mirrors>
    <mirror>
      <id>asia-nexus</id>
      <name>aisa nexus repository</name>
      <mirrorOf>*,!inland-nexus</mirrorOf>
      <url>http://test1/repository/maven-public/</url>
    </mirror>
    <mirror> 
        <id>inland-nexus</id>  
        <name>inland nexus repository</name>  
        <mirrorOf>*,!asia-nexus</mirrorOf>  
        <url>https://test2/repository/public/</url> 
    </mirror> 
  </mirrors>

mirrorOf中的名字就是我们在repository定义的id,配置如下

<profile>
      <id>wecash-asia-nexus</id>
      <repositories>
        <repository>
          <id>asia-nexus</id>
          <url>http://test1/repository/maven-public/</url>
          <releases>
            <enabled>true</enabled>
          </releases>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
      </repositories>
    </profile>
发布了328 篇原创文章 · 获赞 23 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/lbh199466/article/details/104042017
今日推荐