maven倉庫訪問順序小結(jié)
1.沒有配置私服的情況下(大部分情況下)

如上圖所示,maven是依次從本地倉庫、中央倉庫和第三方倉庫獲取依賴的,其實(shí)在maven中并不是以這三種類型區(qū)分的,在maven中只有兩種倉庫類型,本地倉庫和遠(yuǎn)程倉庫,我圖中的中央倉庫和第三方倉庫都屬于遠(yuǎn)程倉庫,這里只是細(xì)化了。
- 首先當(dāng)構(gòu)建項(xiàng)目時,如果缺少依賴項(xiàng),maven會從配置的本地倉庫中尋找該依賴
- 當(dāng)本地倉庫不存在時,maven會去中央倉庫尋找該依賴,一般地,我們國內(nèi)用戶都會在安裝maven時在setting.xml中添加中央倉庫的鏡像以加快速度,所以如果你對中央倉庫配置了aliyun的鏡像地址,那么到這一步時maven會去鏡像地址查找該依賴
- 如果你的項(xiàng)目中有些依賴在中央倉庫不存在,那么就代表中央倉庫也無法找到,這時maven會去通過pom.xml文件中定義的遠(yuǎn)程倉庫依次訪問查找依賴,直到遇到第一個查找到的依賴即停止查找并下載依賴到本地倉庫
- 如果遍歷完遠(yuǎn)程倉庫仍然未找到,maven則報(bào)錯
tips:我不建議在配置aliyun鏡像的時候設(shè)置通配符去代替所有遠(yuǎn)程倉庫,就像這樣
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>*</mirrorOf> </mirror>
這樣寫就代表該配置是所有maven倉庫的鏡像,任何對于遠(yuǎn)程倉庫的請求都會被轉(zhuǎn)到該地址,但是aliyun只是中央倉庫的鏡像,所以如果你這樣寫就會導(dǎo)致依賴永遠(yuǎn)拉取不下來(如果該依賴是中央倉庫沒有的),還是建議規(guī)范一些,mirrorOf設(shè)置為central
2.配置私服的情況下

- 首先當(dāng)構(gòu)建項(xiàng)目時,如果缺少依賴項(xiàng),maven會從配置的本地倉庫中尋找該依賴
- 如果本地倉庫不存在需要的依賴,maven會去配置的私服中查找依賴并下載到本地倉庫
- 如果私服也沒有找到,私服會向它配置的其他遠(yuǎn)程倉庫發(fā)送請求,例如中央倉庫或其他遠(yuǎn)程倉庫等,如果找到依賴則緩存到私服中并提供該依賴
- 最終,如果所需的構(gòu)件在私服上配置的任何遠(yuǎn)程倉庫中都無法找到,則Maven將報(bào)告構(gòu)建失敗。
tips:這里所說的私服也是一種特殊的遠(yuǎn)程倉庫,也就是說,對于maven來說,除了本地倉庫,其他的倉庫都屬于遠(yuǎn)程倉庫
到此這篇關(guān)于maven倉庫訪問順序小結(jié)的文章就介紹到這了,更多相關(guān)maven倉庫訪問順序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Spring?Data?Jpa返回自定義對象的3種方法實(shí)例
在使用Spring Data Jpa框架時,根據(jù)業(yè)務(wù)需求我們通常需要進(jìn)行復(fù)雜的數(shù)據(jù)庫查詢,下面這篇文章主要給大家介紹了關(guān)于Spring?Data?Jpa返回自定義對象的3種方法,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
Java編程小實(shí)例—數(shù)字時鐘的實(shí)現(xiàn)代碼示例
正所謂拳不離手曲不離口,java學(xué)習(xí)的過程中,練習(xí)還是要多一點(diǎn)比較好。接下來分享給大家一個Java編程的小實(shí)例,供朋友們參考。2017-10-10
一小時迅速入門Mybatis之bind與多數(shù)據(jù)源支持 Java API
這篇文章主要介紹了一小時迅速入門Mybatis之bind與多數(shù)據(jù)源支持 Java API,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09
聊聊springmvc中controller的方法的參數(shù)注解方式
本篇文章主要介紹了聊聊springmvc中controller的方法的參數(shù)注解方式,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-10-10
Springboot+MultipartFile實(shí)現(xiàn)單文件,多文件批量上傳過程
在Spring?Boot中,若需Swagger顯示文件上傳按鈕,需使用@Consumes注解指定Content-Type(如multipart/form-data),以告知接口接受文件類型,此注解幫助Swagger正確識別請求參數(shù),確保功能展示完整2025-07-07
教大家使用java實(shí)現(xiàn)頂一下踩一下功能
這篇文章主要教大家如何使用java實(shí)現(xiàn)頂一下踩一下功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-02-02
java數(shù)據(jù)結(jié)構(gòu)之棧的詳解
這篇文章主要為大家詳細(xì)介紹了Java數(shù)據(jù)結(jié)構(gòu)的棧的應(yīng)用,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能給你帶來幫助2021-08-08

