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

本地倉庫:本地倉庫默認是在.m2文件夾中,可以通過settings.xml文件的標簽來指定本地倉庫的目錄。
<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構建的時候,先從本地倉庫去尋找組件,本地倉庫找不到再去遠程倉庫中尋找,所以本地倉庫的優(yōu)先級要高于遠程倉庫。
要點:
(1)當配置多個repository時,無論是配置在settings.xml文件還是pom.xml文件中,依次從這些倉庫中查找,如果第一個倉庫能找到,就用第一個倉庫,如果找不到,就依次往下找。
(2)當同時配置了多個repository和mirror時,如果當中某個repository的id與mirror的mirrorOf的內容相同時,則表示這個倉庫被鏡像了,將不在從該repository對應的url地址下載組件,而是直接從mirror中的url地址去下載組件。如果repository中的id都沒有與mirror的mirrorOf的內容相同時,則依次從這些repository和mirror對應的url地址去查找,直到找到為止。
(3)當mirrorOf的內容為*時,則表示該鏡像可以是所有倉庫的鏡像,無論配置了多少個倉庫,都不會從這些倉庫對應的url地址去下載組件,只會從這個mirror中的url地址去下載組件。
到此這篇關于Maven倉庫分類的優(yōu)先級的文章就介紹到這了,更多相關Maven倉庫優(yōu)先級內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringBoot項目讀取外置logback配置文件的問題及解決
SpringBoot項目讀取外置logback配置文件的問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-08-08
SpringBoot修改子模塊Module的jdk版本的方法 附修改原因
這篇文章主要介紹了SpringBoot修改子模塊Module的jdk版本的方法 附修改原因,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-04-04

