有兩種方式配置Maven多倉庫
- setting.xml文件的profiles標簽
- pom.xml文件的repositories標簽
在使用多倉庫配置時,不管使用哪種方式,必須先將setting.xml文件中的mirrors標簽修改為如下內(nèi)容(如果有mirrors標簽),關(guān)鍵是mirrorOf千萬不要寫成*,否則多倉庫配置不生效
<mirrors>
<!-- mirrorOf不要寫*號,否則所有的請求都會使用此地址,此處僅僅代理默認的中央倉庫 -->
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>https://maven.aliyun.com/repository/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
兩種方式可以同時使用,setting.xml方式優(yōu)先級高于pom.xml
1、setting.xml文件的profiles標簽
如何配置
在setting.xml文件的settings標簽中找到profiles標簽(如果沒有請直接新增),將其替換成如下配置(具體配置取決于自身需要的倉庫)
<profiles>
<!-- 有贊倉庫 -->
<profile>
<id>Youzanyun</id>
<repositories>
<repository>
<id>youzanyun-central</id>
<name>Youzan Central Repository</name>
<url>http://maven.youzanyun.com/repository/maven-central/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>youzanyun-releases</id>
<name>Youzan Release Repository</name>
<url>http://maven.youzanyun.com/repository/maven-releases/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</profile>
<!-- 阿里倉庫 -->
<profile>
<id>Aliyun</id>
<repositories>
<repository>
<id>aliyun-public</id>
<name>Aliyun Public Repository</name>
<url>https://maven.aliyun.com/repository/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>aliyun-spring</id>
<name>Aliyun Spring Proxy Repository</name>
<url>https://maven.aliyun.com/repository/spring</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
</profile>
</profiles>
<activeProfiles>
<activeProfile>Youzanyun</activeProfile>
<activeProfile>Aliyun</activeProfile>
</activeProfiles>
profiles中可以有多個profile,每個profile有一個唯一的ID,在每個profile中可以指定多個repository,repository用于指定倉庫地址、ID、名稱等信息,建議每個倉庫的id不要重復(fù),有利于查看jar包來源。
如何使配置生效
上面配置完畢并不會生效,有兩種簡單的方式可以使其生效
- 1、在setting.xml文件的settings標簽中找到activeProfiles標簽(如果沒有請直接新增),將其替換成如下配置(activeProfile標簽中的值寫配置好的profile的id)
<activeProfiles>
<activeProfile>Youzanyun</activeProfile>
<activeProfile>Aliyun</activeProfile>
</activeProfiles>
- 2、在IDEA中手動勾選,IDEA右上角找到并打開Maven標簽頁,展開Profiles,勾選上需要的profile
需要哪個profile生效就勾選哪個,注意:如果已經(jīng)在activeProfiles中配置了某個profile,在此處取消勾選是不起作用的
2、pom.xml文件的repositories標簽
這種方式就簡單得多,直接打開項目的pom.xml文件,在project標簽下增加如下配置即可
<repositories>
<repository>
<id>youzanyun-central-pom</id>
<name>Nexus Release Repository</name>
<url>http://maven.youzanyun.com/repository/maven-central1/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>youzanyun-releases-pom</id>
<name>Nexus Release Repository</name>
<url>http://maven.youzanyun.com/repository/maven-releases1/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
優(yōu)先級
當同時使用setting.xml方式和pom.xml方式,setting.xml方式優(yōu)先級高于pom.xml。
setting.xml中多個profiles優(yōu)先級
profiles如果存在多個profile,優(yōu)先級與profile在文件中聲明的順序有關(guān),越靠后優(yōu)先級越高。
setting.xml中多個repository優(yōu)先級
在每個profile中有個repositorys標簽,在repositorys中可以指定多個repository,多個repository的優(yōu)先級與其聲明的順序有關(guān),越靠前優(yōu)先級越高,這與多個profile的優(yōu)先級剛好相反。
pom.xml中多個repository優(yōu)先級
在每個pom.xml文件中也有個repositorys標簽,在repositorys中可以指定多個repository,多個repository的優(yōu)先級與其聲明的順序有關(guān),越靠前優(yōu)先級越高。文章來源:http://www.zghlxwxcb.cn/news/detail-523748.html
總結(jié)
從遠程倉庫獲取jar包過程中,如果配置了多個倉庫,那么倉庫的生效順序如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-523748.html
- 從setting.xml中獲取激活的profile,多個profile按照聲明順序倒序排列,依次處理每一個profile(激活的);
- 在單個profile中按照repository聲明順序依次查找,直到找到需要的jar包,如果沒找到就到下一個profile中查找;
- 所有的profile配置的倉庫都沒找到,那就需要查找pom.xml中配置的倉庫,按照repository在pom.xml文件中聲明的順序依次查找,如果還沒有,jar包下載失??;
到了這里,關(guān)于Maven多倉庫配置的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!