maven如何配置多个镜像,多个不同的项目分别使用其中一个?

场景

  1. 在公司,做公司的项目A,用的公司的私服.
  2. 在家的时候,如果还想弄个其他的项目B玩玩的话,就要去setting.xml中去改镜像设置,改成一个公共的仓库

maven有没有提供什么功能可以单独为某个项目设置远程仓库地址,在公司我做A项目的时候,他去公司的私服下载jar包.在家里的时候,没办法连到公司的内网,这时候用公共的仓库(比如阿里云等).
不知道要怎么实现.

<mirrors>
    <!-- <mirror>
      <id>releases</id>
      <mirrorOf>central</mirrorOf>
      <name>Team Nexus Repository</name>
      <url>http://192.168.0.222:8081/nexus/content/groups/public</url>
    </mirror> -->
    <mirror>
      <id>aliyun</id>
      <name>aliyun-public</name>
      <mirrorOf>central</mirrorOf>
      <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
</mirrors>
阅读 9.3k
2 个回答

这个可以在profiles里面配多个仓库吧,在其中一个仓库找不到依赖时,会依次从下一个仓库里找。要在activeProfiles设置启用的仓库

<profiles>

      <profile>
          <id>sonar</id>
          <properties>
              <sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar</sonar.jdbc.url>
              <sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
              <sonar.jdbc.username>sonar</sonar.jdbc.username>
              <sonar.jdbc.password>sonar@pw</sonar.jdbc.password>
              <sonar.host.url>http://xx.xx.xx.xx:9000/</sonar.host.url> <!-- Sonar服务器访问地址 -->
          </properties>
      </profile>

      <profile>
            <id>aliyun</id>
            <repositories>
                <repository>
                    <id>aliyun</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
                    <!-- <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> 
                        </snapshots> -->
                    <releases>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>aliyun</id>
                    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
                    <releases>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
</profiles>
<activeProfiles>
    <activeProfile>sonar</activeProfile>
    <activeProfile>aliyun</activeProfile>
</activeProfiles>

不同的项目,不是可以有不同的maven配置吗,你把maven的包拷贝一份,整两个maven不就好了??

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题