Maven倉庫分類的優(yōu)先級
1.倉庫的分類
maven的倉庫主要是用于存儲及管理項目中所依賴的組件??煞譃?code>本地倉庫和遠程倉庫
,遠程倉庫有可以細分為中央倉庫
、私有倉庫
,中央倉庫主要是由maven的開發(fā)團隊負責(zé)開發(fā)管理的一些公共組件的公用的倉庫;私有倉庫主要是指個人通過一些第三方平臺搭建的自己的專屬倉庫;私有倉庫又可以根據(jù)配置的位置不同可分為全局profile倉庫
、項目profile倉庫
、項目倉庫
、鏡像倉庫
。
本地倉庫:本地倉庫默認是在.m2文件夾中,可以通過settings.xml文件的標(biāo)簽來指定本地倉庫的目錄。
<localRepository>D:\Work\Maven\repositoryNexus</localRepository>
全局profile倉庫:通過 settings.xml 中的 profiles.profile.repositories.repository 配置,對所有使用該maven的項目都生效。
<profiles> <profile> <id>dev</id> <repositories> <repository> <id>nexus-repo</id> <name>nexus-repo</name> <url>http://127.0.0.1:8081/repository/maven-public/</url> <layout>default</layout> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> </profile> </profiles> <!--激活profile--> <activeProfiles> <activeProfile>dev</activeProfile> </activeProfiles>
項目profile倉庫:通過項目的pom.xml 中的 profiles.profile.repositories.repository 配置,僅對該maven的項目都生效。
<profiles> <profile> <id>dev</id> <repositories> <repository> <id>nexus-repo</id> <name>nexus-repo</name> <url>http://127.0.0.1:8081/repository/maven-public/</url> <layout>default</layout> <releases><enabled>true</enabled></releases> <snapshots><enabled>true</enabled></snapshots> </repository> </repositories> <!--激活profile--> <activation> <activeByDefault>true</activeByDefault> </activation> </profile> </profiles>
項目倉庫:通過項目的pom.xml 中的 repositories.repository 配置,僅對該maven的項目都生效。
<repositories> <repository> <id>snapshots</id> <name>snapshots-repo</name> <url>http://127.0.0.1:8081/repository/maven-snapshots/</url> <layout>default</layout> <snapshots> <enabled>true</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>warn</checksumPolicy> </snapshots> <releases> <enabled>false</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>warn</checksumPolicy> </releases> </repository> </repositories>
鏡像倉庫:通過 settings.xml 中的 mirrors.mirror 配置。主要提供一個方便切換遠程倉庫地址的途徑。
<mirror> <id>nexus-aliyun</id> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
中央倉庫:是maven默認的遠程倉庫,在maven的lib
安裝目錄中有一個maven-model-builder-3.0.4.jar
,在這個jar包中有個org/apache/maven/model/pom-4.0.0.xml
文件,在這個pom文件中就配置了中央倉庫,默認的中央倉庫的id為central
。
<repositories> <repository> <id>central</id> <name>Central Repository</name> <url>https://repo.maven.apache.org/maven2</url> <layout>default</layout> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
2.倉庫的優(yōu)先級
maven構(gòu)建的時候,先從本地倉庫去尋找組件,本地倉庫找不到再去遠程倉庫中尋找,所以本地倉庫的優(yōu)先級要高于遠程倉庫。
要點:
(1)當(dāng)配置多個repository時,無論是配置在settings.xml文件還是pom.xml文件中,依次從這些倉庫中查找,如果第一個倉庫能找到,就用第一個倉庫,如果找不到,就依次往下找。
(2)當(dāng)同時配置了多個repository和mirror時,如果當(dāng)中某個repository的id與mirror的mirrorOf的內(nèi)容相同時,則表示這個倉庫被鏡像了,將不在從該repository對應(yīng)的url地址下載組件,而是直接從mirror中的url地址去下載組件。如果repository中的id都沒有與mirror的mirrorOf的內(nèi)容相同時,則依次從這些repository和mirror對應(yīng)的url地址去查找,直到找到為止。
(3)當(dāng)mirrorOf的內(nèi)容為*
時,則表示該鏡像可以是所有倉庫的鏡像,無論配置了多少個倉庫,都不會從這些倉庫對應(yīng)的url地址去下載組件,只會從這個mirror中的url地址去下載組件。
到此這篇關(guān)于Maven倉庫分類的優(yōu)先級的文章就介紹到這了,更多相關(guān)Maven倉庫優(yōu)先級內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot項目啟動的時候,運行main方法報錯NoClassDefFoundError問題
這篇文章主要介紹了springboot項目啟動的時候,運行main方法報錯NoClassDefFoundError問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-01-01Java陷阱之a(chǎn)ssert關(guān)鍵字詳解
這篇文章詳細介紹了Java陷阱之a(chǎn)ssert關(guān)鍵字,有需要的朋友可以參考一下2013-09-09Java Apollo環(huán)境搭建以及集成SpringBoot案例詳解
這篇文章主要介紹了Java Apollo環(huán)境搭建以及集成SpringBoot案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下2021-08-08