只用一招,让你Maven依赖下载速度快如闪电
一、背景
眾所周知,Maven對(duì)于依賴(lài)的管理讓我們程序員感覺(jué)爽的不要不要的,但是由于這貨是國(guó)外出的,所以在我們從中央倉(cāng)庫(kù)下載依賴(lài)的時(shí)候,速度如蝸牛一般,讓人不能忍,并且這也是大多數(shù)程序員都會(huì)遇到的問(wèn)題。今天我們就教大家一招來(lái)完美解決這個(gè)問(wèn)題,從此遠(yuǎn)離下載依賴(lài)速度極慢的困擾。
二、原理及解決方式
1.其實(shí)maven為了解決遠(yuǎn)程依賴(lài)下載慢的問(wèn)題,提供了我們可以使用鏡像來(lái)進(jìn)行解決。
2.鏡像:如果倉(cāng)庫(kù)X可以提供倉(cāng)庫(kù)Y存儲(chǔ)的所有內(nèi)容,那么就可以認(rèn)為X是Y的一個(gè)鏡像。換句話說(shuō),任何一個(gè)可以從倉(cāng)庫(kù)Y獲得的構(gòu)件,都胡夠從它的鏡像中獲取。
3.maven安裝程序conf文件夾下setting.xml中的<mirrorOf></mirrorOf>元素
<mirrorOf></mirrorOf>標(biāo)簽里面放置的是要被鏡像的Repository ID。為了滿足一些復(fù)雜的需求,Maven還支持更高級(jí)的鏡像配置:?
- <mirrorOf>*</mirrorOf>?
????????????匹配所有遠(yuǎn)程倉(cāng)庫(kù)。?
- <mirrorOf>repo1,repo2</mirrorOf>?
????????????匹配倉(cāng)庫(kù)repo1和repo2,使用逗號(hào)分隔多個(gè)遠(yuǎn)程倉(cāng)庫(kù)。?
- <mirrorOf>*,!repo1</miiroOf>?
????????????匹配所有遠(yuǎn)程倉(cāng)庫(kù),repo1除外,使用感嘆號(hào)將倉(cāng)庫(kù)從匹配中排除。
4.注意
由于鏡像倉(cāng)庫(kù)完全屏蔽了被鏡像倉(cāng)庫(kù),當(dāng)鏡像倉(cāng)庫(kù)不穩(wěn)定或者停止服務(wù)的時(shí)候,Maven仍將無(wú)法訪問(wèn)被鏡像倉(cāng)庫(kù),因而將無(wú)法下載構(gòu)件。
5.阿里為我們提供了公共的Maven鏡像庫(kù),我們就來(lái)配置它作為我們的中央倉(cāng)庫(kù)的鏡像(當(dāng)然你也可以指定別的Maven鏡像庫(kù),比如OSChina的,但是阿里的鏡像庫(kù)是目前我所知道的速度最快的一個(gè))
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>我們只需要在我們的本地maven安裝位置下的conf文件夾下的setting.xml中的<mirrors>鏡像集合中添加如上的中央倉(cāng)庫(kù)的鏡像就可以解決maven下載依賴(lài)速度慢的問(wèn)題。
三、總結(jié)
我們遇見(jiàn)了問(wèn)題,要懂得去站在巨人的肩膀上。去尋找別人解決方案。還有就是一個(gè)好的企業(yè)不單單只為自己的員工謀福利,更為這個(gè)社會(huì)做出貢獻(xiàn),我很欣賞阿里這樣的有情懷的公司!遇見(jiàn)問(wèn)題要想著如何徹底的解決問(wèn)題,而不是將問(wèn)題隱藏而束之高閣~
總結(jié)
以上是生活随笔為你收集整理的只用一招,让你Maven依赖下载速度快如闪电的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Angular2封装拖拽指令
- 下一篇: 给mysql的root %用户添加gra