maven多倉庫配置(公司服務器與阿里雲倉庫)

maven多倉庫配置(公司服務器與阿里雲倉庫)

1. 問題描述

公司內網搭建的有maven私有服務器,可是碰到好幾回只有gav沒有jar的狀況或者最新版本更新不及時,因此須要公司服務器和遠程倉庫(阿里雲)相結合來知足項目需求。apache

2. 解決方案:

maven倉庫配置主要兩種方式,一種是全局的;一種是配置在項目中,局部的。服務器

2.1 方式一,全局配置

直接更改repo中的setting,目前項目中正在使用(隱藏替換了公司服務器地址)。maven

直接上代碼ide

<?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">
           <!-- <localRepository>E:\Develop\maven_repo</localRepository> -->    
    <localRepository>E:\m2\repository</localRepository>      
    <servers>
        <server>
        <id>releases</id>
        <username>admin</username>
        <password>admin@123</password>
    </server>
    <server>
        <id>snapshots</id>
        <username>admin</username>
        <password>admin@123</password>
    </server>
    </servers>
    <profiles>
        <profile>
            <id>nexus</id>
            <repositories>
                <repository>
                    <id>central</id>
                    <url>http://dev.hbusy.com/maven/content/repositories/public</url>
                    <releases>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy> 
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots>
                </repository>
                <repository>
			              <id>cloudera</id>
		           <url>https://repository.cloudera.com/artifactory/clouderarepos/</url>
		            </repository>
		            	<!--新增阿里雲-->
		             <repository>
			              <id>aliyun</id>
			              <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
		            </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>central</id>
                    <url>http://dev.hbusy.com/maven/content/repositories/public</url>
                    <releases>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots>
                </pluginRepository>
                   <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>nexus</activeProfile>
    </activeProfiles>
</settings>

配置解析:阿里雲

Maven 依賴搜索順序:本地倉庫->中央倉庫->遠程倉庫。url

1.本地倉庫指定server

<localRepository>E:\m2\repository</localRepository>  

2. 國內通常直接用遠程倉庫(阿里雲)xml

 <url>http://maven.aliyun.com/nexus/content/groups/public/</url>

3. 多倉庫配置開發

  1. 配置多個repository
   <repositories>
  						<repository>
			              <id>aliyun</id>
			              <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
		            </repository>
   </repositories>
  1. 在pluginRepository中配置下對應的repository便可
  </pluginRepository>
                
                   <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>

2.2 方式二,項目中局部配置

<project>
   <repositories>
                <repository>
                    <id>central</id>
                    <url>http://dev.hbusy.com/maven/content/repositories/public</url>
                    <releases>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy> 
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots>
                </repository>
                <repository>
			              <id>cloudera</id>
			              <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
		            </repository>
		            	<!--新增阿里雲-->
		             <repository>
			              <id>aliyun</id>
			              <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
		            </repository>
</repositories>
</project>

​ 實際開發過程當中,通常使用全局配置(在repo中配置setting),除非有些新老項目共存的狀況,jar包存在衝突,會單獨在項目中配置下。it

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=
相關文章
相關標籤/搜索