一、背景
眾所周知,Maven對於依賴的管理讓我們程序員感覺爽的不要不要的,但是由於這貨是國外出的,所以在我們從中央倉庫下載依賴的時候,速度如蝸牛一般,讓人不能忍,並且這也是大多數程序員都會遇到的問題。今天我們就教大家一招來完美解決這個問題,從此遠離下載依賴速度極慢的困擾。
二、原理及解決方式
1.其實maven為了解決遠程依賴下載慢的問題,提供了我們可以使用鏡像來進行解決。
2.鏡像:如果倉庫X可以提供倉庫Y存儲的所有內容,那么就可以認為X是Y的一個鏡像。換句話說,任何一個可以從倉庫Y獲得的構件,都胡夠從它的鏡像中獲取。
3.maven安裝程序conf文件夾下setting.xml中的<mirrorOf></mirrorOf>元素
<mirrorOf></mirrorOf>標簽里面放置的是要被鏡像的Repository ID。為了滿足一些復雜的需求,Maven還支持更高級的鏡像配置:
- <mirrorOf>*</mirrorOf>
匹配所有遠程倉庫。
- <mirrorOf>repo1,repo2</mirrorOf>
匹配倉庫repo1和repo2,使用逗號分隔多個遠程倉庫。
- <mirrorOf>*,!repo1</miiroOf>
匹配所有遠程倉庫,repo1除外,使用感嘆號將倉庫從匹配中排除。
4.注意
由於鏡像倉庫完全屏蔽了被鏡像倉庫,當鏡像倉庫不穩定或者停止服務的時候,Maven仍將無法訪問被鏡像倉庫,因而將無法下載構件。
5.阿里為我們提供了公共的Maven鏡像庫,我們就來配置它作為我們的中央倉庫的鏡像(當然你也可以指定別的Maven鏡像庫,比如OSChina的,但是阿里的鏡像庫是目前我所知道的速度最快的一個)
<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>鏡像集合中添加如上的中央倉庫的鏡像就可以解決maven下載依賴速度慢的問題。