Maven倉庫分類的優(yōu)先級
1.倉庫的分類
maven的倉庫主要是用于存儲及管理項(xiàng)目中所依賴的組件??煞譃?code>本地倉庫和遠(yuǎn)程倉庫,遠(yuǎn)程倉庫有可以細(xì)分為中央倉庫、私有倉庫,中央倉庫主要是由maven的開發(fā)團(tuán)隊(duì)負(fù)責(zé)開發(fā)管理的一些公共組件的公用的倉庫;私有倉庫主要是指個(gè)人通過一些第三方平臺搭建的自己的專屬倉庫;私有倉庫又可以根據(jù)配置的位置不同可分為全局profile倉庫、項(xiàng)目profile倉庫、項(xiàng)目倉庫、鏡像倉庫。

本地倉庫:本地倉庫默認(rèn)是在.m2文件夾中,可以通過settings.xml文件的標(biāo)簽來指定本地倉庫的目錄。
<localRepository>D:\Work\Maven\repositoryNexus</localRepository>
全局profile倉庫:通過 settings.xml 中的 profiles.profile.repositories.repository 配置,對所有使用該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倉庫:通過項(xiàng)目的pom.xml 中的 profiles.profile.repositories.repository 配置,僅對該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)目倉庫:通過項(xiàng)目的pom.xml 中的 repositories.repository 配置,僅對該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>
鏡像倉庫:通過 settings.xml 中的 mirrors.mirror 配置。主要提供一個(gè)方便切換遠(yuǎn)程倉庫地址的途徑。
<mirror> <id>nexus-aliyun</id> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror>
中央倉庫:是maven默認(rèn)的遠(yuǎn)程倉庫,在maven的lib安裝目錄中有一個(gè)maven-model-builder-3.0.4.jar,在這個(gè)jar包中有個(gè)org/apache/maven/model/pom-4.0.0.xml文件,在這個(gè)pom文件中就配置了中央倉庫,默認(rèn)的中央倉庫的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)建的時(shí)候,先從本地倉庫去尋找組件,本地倉庫找不到再去遠(yuǎn)程倉庫中尋找,所以本地倉庫的優(yōu)先級要高于遠(yuǎn)程倉庫。
要點(diǎn):
(1)當(dāng)配置多個(gè)repository時(shí),無論是配置在settings.xml文件還是pom.xml文件中,依次從這些倉庫中查找,如果第一個(gè)倉庫能找到,就用第一個(gè)倉庫,如果找不到,就依次往下找。
(2)當(dāng)同時(shí)配置了多個(gè)repository和mirror時(shí),如果當(dāng)中某個(gè)repository的id與mirror的mirrorOf的內(nèi)容相同時(shí),則表示這個(gè)倉庫被鏡像了,將不在從該repository對應(yīng)的url地址下載組件,而是直接從mirror中的url地址去下載組件。如果repository中的id都沒有與mirror的mirrorOf的內(nèi)容相同時(shí),則依次從這些repository和mirror對應(yīng)的url地址去查找,直到找到為止。
(3)當(dāng)mirrorOf的內(nèi)容為*時(shí),則表示該鏡像可以是所有倉庫的鏡像,無論配置了多少個(gè)倉庫,都不會從這些倉庫對應(yīng)的url地址去下載組件,只會從這個(gè)mirror中的url地址去下載組件。
到此這篇關(guān)于Maven倉庫分類的優(yōu)先級的文章就介紹到這了,更多相關(guān)Maven倉庫優(yōu)先級內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Java對象轉(zhuǎn)JSON時(shí)動態(tài)的增刪改查屬性詳解
這篇文章主要介紹了Java對象轉(zhuǎn)JSON時(shí)如何動態(tài)的增刪改查屬性的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
Java使用延時(shí)隊(duì)列搞定超時(shí)訂單處理的場景
這篇文章主要介紹了Java使用延時(shí)隊(duì)列搞定超時(shí)訂單處理,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08
SpringBoot項(xiàng)目讀取外置logback配置文件的問題及解決
SpringBoot項(xiàng)目讀取外置logback配置文件的問題及解決,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
JVM分配和回收堆外內(nèi)存的方式與注意點(diǎn)
JVM啟動時(shí)分配的內(nèi)存稱為堆內(nèi)存,與之相對的,在代碼中還可以使用堆外內(nèi)存,比如Netty,廣泛使用了堆外內(nèi)存,下面這篇文章主要給大家介紹了關(guān)于JVM分配和回收堆外內(nèi)存的方式與注意點(diǎn),需要的朋友可以參考下2022-07-07
Java使用正則表達(dá)式判斷獨(dú)立字符的存在(代碼示例)
通過使用正則表達(dá)式,我們可以更加靈活地判斷字符串中是否包含特定的字符,并且可以控制匹配的條件,如獨(dú)立的字符,這為我們處理字符串提供了更多的選擇和功能,這篇文章主要介紹了Java使用正則表達(dá)式判斷獨(dú)立字符的存在,需要的朋友可以參考下2023-10-10
SpringBoot修改子模塊Module的jdk版本的方法 附修改原因
這篇文章主要介紹了SpringBoot修改子模塊Module的jdk版本的方法 附修改原因,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-04-04

