maven配置多個(gè)鏡像的實(shí)現(xiàn)方法
問題場(chǎng)景
1、國內(nèi)訪問maven默認(rèn)遠(yuǎn)程中央鏡像特別慢
2、用阿里的鏡像替代遠(yuǎn)程中央鏡像
3、大部分jar包都可以在阿里鏡像中找到,部分jar包在阿里鏡像中沒有,需要單獨(dú)配置鏡像
解決方案
settings.xml 中可以使用變量,可以嘗試使用變量解決:
<mirrors>
<!-- 阿里云倉庫 -->
<mirror>
<id>alimaven</id>
<mirrorOf>central</mirrorOf>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
</mirror>
<!-- 中央倉庫1 -->
<mirror>
<id>repo1</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo1.maven.org/maven2/</url>
</mirror>
<!-- 中央倉庫2 -->
<mirror>
<id>repo2</id>
<mirrorOf>central</mirrorOf>
<name>Human Readable Name for this Mirror.</name>
<url>http://repo2.maven.org/maven2/</url>
</mirror>
</mirrors>
在maven的配置文件setting.xml大里面有個(gè)mirrors節(jié)點(diǎn),用來配置鏡像URL。mirrors可以配置多個(gè)mirror,每個(gè)mirror有id,name,url,mirrorOf屬性,
id是唯一標(biāo)識(shí)一個(gè)mirror,name節(jié)點(diǎn)名,url是官方的庫地址,mirrorOf代表了一個(gè)鏡像的替代位置,例如central就表示代替官方的中央庫
雖然mirrors可以配置多個(gè)子節(jié)點(diǎn),但是它只會(huì)使用其中的一個(gè)節(jié)點(diǎn),即默認(rèn)情況下配置多個(gè)mirror的情況下,只有第一個(gè)生效,只有當(dāng)前一個(gè)mirror
無法連接的時(shí)候,才會(huì)去找后一個(gè);而我們想要的效果是:當(dāng)a.jar在第一個(gè)mirror中不存在的時(shí)候,maven會(huì)去第二個(gè)mirror中查詢下載,但是maven不會(huì)這樣做!
注意:
配置多個(gè)mirror時(shí),mirrorOf不能配置" * "," * " 的意思就是(根據(jù)mirrorOf和repository的id)匹配所有的倉庫(repository),
這樣就是說如果你需要某個(gè)jar,他會(huì)從鏡像地址去下載這個(gè)jar。不管你配置了多少個(gè)庫,即使這些庫的地址不一樣,仍然會(huì)從鏡像地址訪問
到此這篇關(guān)于maven配置多個(gè)鏡像的實(shí)現(xiàn)方法的文章就介紹到這了,更多相關(guān)maven配置多個(gè)鏡像內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring boot創(chuàng)建自定義starter的完整步驟
Springboot集成minio實(shí)現(xiàn)文件存儲(chǔ)的實(shí)現(xiàn)代碼
spring security國際化及UserCache的配置和使用
JAVA數(shù)字千分位和小數(shù)點(diǎn)的現(xiàn)實(shí)代碼(處理金額問題)
mybatis框架order by作為參數(shù)傳入時(shí)失效的解決

