您好,登錄后才能下訂單哦!
這篇文章主要介紹了Maven倉庫分類的優先級是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Maven倉庫分類的優先級是什么文章都會有所收獲,下面我們一起來看看吧。
maven的倉庫主要是用于存儲及管理項目中所依賴的組件。可分為本地倉庫
和遠程倉庫
,遠程倉庫有可以細分為中央倉庫
、私有倉庫
,中央倉庫主要是由maven的開發團隊負責開發管理的一些公共組件的公用的倉庫;私有倉庫主要是指個人通過一些第三方平臺搭建的自己的專屬倉庫;私有倉庫又可以根據配置的位置不同可分為全局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>
maven構建的時候,先從本地倉庫去尋找組件,本地倉庫找不到再去遠程倉庫中尋找,所以本地倉庫的優先級要高于遠程倉庫。
要點:
(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倉庫分類的優先級是什么”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Maven倉庫分類的優先級是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。