Maven倉(cāng)庫(kù)分類的優(yōu)先級(jí)
1.倉(cāng)庫(kù)的分類
maven的倉(cāng)庫(kù)主要是用于存儲(chǔ)及管理項(xiàng)目中所依賴的組件??煞譃?code>本地倉(cāng)庫(kù)和遠(yuǎn)程倉(cāng)庫(kù)
,遠(yuǎn)程倉(cāng)庫(kù)有可以細(xì)分為中央倉(cāng)庫(kù)
、私有倉(cāng)庫(kù)
,中央倉(cāng)庫(kù)主要是由maven的開發(fā)團(tuán)隊(duì)負(fù)責(zé)開發(fā)管理的一些公共組件的公用的倉(cāng)庫(kù);私有倉(cāng)庫(kù)主要是指?jìng)€(gè)人通過(guò)一些第三方平臺(tái)搭建的自己的專屬倉(cāng)庫(kù);私有倉(cāng)庫(kù)又可以根據(jù)配置的位置不同可分為全局profile倉(cāng)庫(kù)
、項(xiàng)目profile倉(cāng)庫(kù)
、項(xiàng)目倉(cāng)庫(kù)
、鏡像倉(cāng)庫(kù)
。
本地倉(cāng)庫(kù):本地倉(cāng)庫(kù)默認(rèn)是在.m2文件夾中,可以通過(guò)settings.xml文件的標(biāo)簽來(lái)指定本地倉(cāng)庫(kù)的目錄。
<localRepository>D:\Work\Maven\repositoryNexus</localRepository>
全局profile倉(cāng)庫(kù):通過(guò) settings.xml 中的 profiles.profile.repositories.repository 配置,對(duì)所有使用該maven的項(xiàng)目都生效。
<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>
項(xiàng)目profile倉(cāng)庫(kù):通過(guò)項(xiàng)目的pom.xml 中的 profiles.profile.repositories.repository 配置,僅對(duì)該maven的項(xiàng)目都生效。
<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>
項(xiàng)目倉(cāng)庫(kù):通過(guò)項(xiàng)目的pom.xml 中的 repositories.repository 配置,僅對(duì)該maven的項(xiàng)目都生效。
<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>
鏡像倉(cāng)庫(kù):通過(guò) settings.xml 中的 mirrors.mirror 配置。主要提供一個(gè)方便切換遠(yuǎn)程倉(cāng)庫(kù)地址的途徑。
<mirror> <id>nexus-aliyun</id> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
中央倉(cāng)庫(kù):是maven默認(rèn)的遠(yuǎn)程倉(cāng)庫(kù),在maven的lib
安裝目錄中有一個(gè)maven-model-builder-3.0.4.jar
,在這個(gè)jar包中有個(gè)org/apache/maven/model/pom-4.0.0.xml
文件,在這個(gè)pom文件中就配置了中央倉(cāng)庫(kù),默認(rèn)的中央倉(cāng)庫(kù)的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.倉(cāng)庫(kù)的優(yōu)先級(jí)
maven構(gòu)建的時(shí)候,先從本地倉(cāng)庫(kù)去尋找組件,本地倉(cāng)庫(kù)找不到再去遠(yuǎn)程倉(cāng)庫(kù)中尋找,所以本地倉(cāng)庫(kù)的優(yōu)先級(jí)要高于遠(yuǎn)程倉(cāng)庫(kù)。
要點(diǎn):
(1)當(dāng)配置多個(gè)repository時(shí),無(wú)論是配置在settings.xml文件還是pom.xml文件中,依次從這些倉(cāng)庫(kù)中查找,如果第一個(gè)倉(cāng)庫(kù)能找到,就用第一個(gè)倉(cāng)庫(kù),如果找不到,就依次往下找。
(2)當(dāng)同時(shí)配置了多個(gè)repository和mirror時(shí),如果當(dāng)中某個(gè)repository的id與mirror的mirrorOf的內(nèi)容相同時(shí),則表示這個(gè)倉(cāng)庫(kù)被鏡像了,將不在從該repository對(duì)應(yīng)的url地址下載組件,而是直接從mirror中的url地址去下載組件。如果repository中的id都沒(méi)有與mirror的mirrorOf的內(nèi)容相同時(shí),則依次從這些repository和mirror對(duì)應(yīng)的url地址去查找,直到找到為止。
(3)當(dāng)mirrorOf的內(nèi)容為*
時(shí),則表示該鏡像可以是所有倉(cāng)庫(kù)的鏡像,無(wú)論配置了多少個(gè)倉(cāng)庫(kù),都不會(huì)從這些倉(cāng)庫(kù)對(duì)應(yīng)的url地址去下載組件,只會(huì)從這個(gè)mirror中的url地址去下載組件。
到此這篇關(guān)于Maven倉(cāng)庫(kù)分類的優(yōu)先級(jí)的文章就介紹到這了,更多相關(guān)Maven倉(cāng)庫(kù)優(yōu)先級(jí)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
springboot項(xiàng)目啟動(dòng)的時(shí)候,運(yùn)行main方法報(bào)錯(cuò)NoClassDefFoundError問(wèn)題
這篇文章主要介紹了springboot項(xiàng)目啟動(dòng)的時(shí)候,運(yùn)行main方法報(bào)錯(cuò)NoClassDefFoundError問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-01-01Jlabel實(shí)現(xiàn)內(nèi)容自動(dòng)換行簡(jiǎn)單實(shí)例
這篇文章主要介紹了Jlabel實(shí)現(xiàn)內(nèi)容自動(dòng)換行簡(jiǎn)單實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01Java陷阱之a(chǎn)ssert關(guān)鍵字詳解
這篇文章詳細(xì)介紹了Java陷阱之a(chǎn)ssert關(guān)鍵字,有需要的朋友可以參考一下2013-09-09Java Apollo環(huán)境搭建以及集成SpringBoot案例詳解
這篇文章主要介紹了Java Apollo環(huán)境搭建以及集成SpringBoot案例詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-08-08利用AOP實(shí)現(xiàn)系統(tǒng)告警的方法詳解
在開發(fā)的過(guò)程中會(huì)遇到各種各樣的開發(fā)問(wèn)題,服務(wù)器宕機(jī)、網(wǎng)絡(luò)抖動(dòng)、代碼本身的bug等等。針對(duì)代碼的bug,我們可以提前預(yù)支,通過(guò)發(fā)送告警信息來(lái)警示我們?nèi)ジ深A(yù),盡早處理。本文將利用AOP實(shí)現(xiàn)系統(tǒng)告警,需要的可以參考一下2022-09-09Spring中AOP的切點(diǎn)、通知、切點(diǎn)表達(dá)式及知識(shí)要點(diǎn)整理
這篇文章主要介紹了Spring中AOP的切點(diǎn)、通知、切點(diǎn)表達(dá)式及知識(shí)要點(diǎn)整理,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-03-03Java實(shí)現(xiàn)淘寶秒殺聚劃算搶購(gòu)自動(dòng)提醒源碼
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)淘寶秒殺聚劃算搶購(gòu)自動(dòng)提醒源碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-02-02