Maven倉庫加載順序的實例解析
Maven倉庫一般分為本地倉庫和遠程倉庫。遠程倉庫又分為私服、中央倉庫、中央倉庫的鏡像倉庫。
本地倉庫就是本地維護的maven倉庫,僅為本機項目提供服務。
私服一般是公司或組織在局域網級別搭建的maven倉庫,服務范圍是公司或組織局域網內的成員。
鏡像倉庫,這裡指的是maven中央倉庫的鏡像倉庫。分佈在全球各個地方,是maven中央倉庫的鏡像備份。鏡像倉庫的作用一是分攤中央倉庫的訪問壓力,第二就是可以提升我們下載依賴的速度。常用的鏡像倉庫有阿裡雲鏡像倉庫等等。
那麼在實際開發中,在配置瞭多個倉庫的情況下,他們之間的加載訪問順序是怎麼樣的呢?
本地倉庫 》 私服 》 鏡像倉庫
可以通過配置來驗證一下:
pom.xml配置倉庫:
<repositories> <repository> <id>local-nexus</id> <url>http://xxx.xxx.xxx.135:8081/nexus/repository/maven-group-snapshots/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> <repository> <id>ali-maven</id> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>
setting.xml配置倉庫:
<!-- 這裡配置的阿裡雲的鏡像倉庫來替代maven中央倉庫 --> <mirrors> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors>
compile一下:
... //優先加載本地倉庫 [DEBUG] Using local repository at D:\programs\apache-maven-3.6.1-bin\notify_repo [DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10.0 for D:\programs\apache-maven-3.6.1-bin\notify_repo [INFO] Scanning for projects... //這裡使用setting.xml配置的阿裡雲中央倉庫代替maven中央倉庫 [DEBUG] Using mirror alimaven (http://maven.aliyun.com/nexus/content/groups/public/) for central (https://repo.maven.apache.org/maven2). ...
... //可以看到這是遠程倉庫加載的順序,先是加載pom.xml配置的135私服,然後是ali-maven,最後才是setting.xml中的alimavn,在pom.xml中,可以通過調整<repository>的順序來調整私服的加載順序 [DEBUG] Repositories (dependencies): [local-nexus (http://xxx.xxx.xxx.135:8081/nexus/repository/maven-group-snapshots/, default, releases+snapshots), ali-maven (http://maven.aliyun.com/nexus/content/groups/public/, default, releases+snapshots), alimaven (http://maven.aliyun.com/nexus/content/groups/public/, default, releases)] ...
這裡說的、以及setting.xml中的並不能代表實際中出現的所有配置,具體加載順序還是得看具體的項目和maven配置,這些都不是重點,重點是可以通過日志來知道實際是什麼情況的。
最後,如何在idea中開啟maven的debug級別日志:
到此這篇關於Maven倉庫加載順序的實例解析的文章就介紹到這瞭,更多相關Maven倉庫加載順序內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Java Maven settings.xml中私有倉庫配置詳解
- 深入講解Java Maven配置
- 解決idea找不到setting.xml文件的問題
- 如何將maven源改為國內阿裡雲鏡像
- maven私服搭建的實現步驟