maven倉庫訪問順序小結
1.沒有配置私服的情況下(大部分情況下)
如上圖所示,maven是依次從本地倉庫、中央倉庫和第三方倉庫獲取依賴的,其實在maven中并不是以這三種類型區(qū)分的,在maven中只有兩種倉庫類型,本地倉庫和遠程倉庫,我圖中的中央倉庫和第三方倉庫都屬于遠程倉庫,這里只是細化了。
- 首先當構建項目時,如果缺少依賴項,maven會從配置的本地倉庫中尋找該依賴
- 當本地倉庫不存在時,maven會去中央倉庫尋找該依賴,一般地,我們國內(nèi)用戶都會在安裝maven時在setting.xml中添加中央倉庫的鏡像以加快速度,所以如果你對中央倉庫配置了aliyun的鏡像地址,那么到這一步時maven會去鏡像地址查找該依賴
- 如果你的項目中有些依賴在中央倉庫不存在,那么就代表中央倉庫也無法找到,這時maven會去通過pom.xml文件中定義的遠程倉庫依次訪問查找依賴,直到遇到第一個查找到的依賴即停止查找并下載依賴到本地倉庫
- 如果遍歷完遠程倉庫仍然未找到,maven則報錯
tips:我不建議在配置aliyun鏡像的時候設置通配符去代替所有遠程倉庫,就像這樣
<mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>*</mirrorOf> </mirror>
這樣寫就代表該配置是所有maven倉庫的鏡像,任何對于遠程倉庫的請求都會被轉到該地址,但是aliyun只是中央倉庫的鏡像,所以如果你這樣寫就會導致依賴永遠拉取不下來(如果該依賴是中央倉庫沒有的),還是建議規(guī)范一些,mirrorOf設置為central
2.配置私服的情況下
- 首先當構建項目時,如果缺少依賴項,maven會從配置的本地倉庫中尋找該依賴
- 如果本地倉庫不存在需要的依賴,maven會去配置的私服中查找依賴并下載到本地倉庫
- 如果私服也沒有找到,私服會向它配置的其他遠程倉庫發(fā)送請求,例如中央倉庫或其他遠程倉庫等,如果找到依賴則緩存到私服中并提供該依賴
- 最終,如果所需的構件在私服上配置的任何遠程倉庫中都無法找到,則Maven將報告構建失敗。
tips:這里所說的私服也是一種特殊的遠程倉庫,也就是說,對于maven來說,除了本地倉庫,其他的倉庫都屬于遠程倉庫
到此這篇關于maven倉庫訪問順序小結的文章就介紹到這了,更多相關maven倉庫訪問順序內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
mybatis?collection和association的區(qū)別解析
這篇文章主要介紹了mybatis?collection解析以及和association的區(qū)別,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07配置了jdk的環(huán)境idea卻提示找不到jdk解決辦法
在使用Java編程語言進行開發(fā)時,IDEA是一個非常流行和強大的集成開發(fā)環(huán)境,這篇文章主要給大家介紹了關于配置了jdk的環(huán)境idea卻提示找不到jdk的解決辦法,需要的朋友可以參考下2023-12-12Java求10到100000之間的水仙花數(shù)算法示例
這篇文章主要介紹了Java求10到100000之間的水仙花數(shù)算法,結合實例形式分析了水仙花數(shù)的概念及相應的java算法實現(xiàn)技巧,需要的朋友可以參考下2017-10-10MyBatis-Plus中如何配置加密功能(使用AES算法)
本文將詳細介紹如何實現(xiàn) MyBatis-Plus 中的配置加密功能,并給出相應的代碼示例,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-03-03