<mirrors>
<!-- 此處的mirrorOf不能隨便寫,要和repository name標簽的一致 --> <!-- maven獲取真正起作用的repository集合流程:首先會獲取pom.xml里的repository集合,然后在settings.xml里找mirrors元素, 如果repository的id和mirror的mirrorOf的值相同,則該mirror替代該repository, 如果該repository找不到對應的mirror, 則使用其本身,依此可以得到最終起作用的repository集合 Internal Artifactory Maven repository作為私服,mirrorOf配置為*來提供中央倉庫中不存在的jar包 --> <mirror> <id>mvn</id> <mirrorOf>central</mirrorOf> <url>https://maven.aliyun.com/repository/public</url> </mirror> <mirror> <id>maven.dev.snaponglobal.com</id> <name>Internal Artifactory Maven repository</name> <url>https://repo.maven.apache.org/maven2/</url> <mirrorOf>*</mirrorOf> </mirror>
</mirrors>
<repositories> <!-- 此處的默認包含了一個central的倉庫 --> <repository> <id>nexus3</id> <name>nexus3</name> <url>http://172.16.8.6:8082/repository/maven-public/</url> </repository> <repository> <id>spring-milestones</id> <name>Spring Milestones</name> <url>https://repo.spring.io/milestone</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> </repositories>
maven獲取真正起作用的repository集合流程:首先會獲取pom.xml里的repository集合,然后在settings.xml里找mirrors元素,
如果repository的id和mirror的mirrorOf的值相同,則該mirror替代該repository,
如果該repository找不到對應的mirror,
則使用其本身,依此可以得到最終起作用的repository集合,
repositories中默認包含了中央倉庫central,當然也可以重新它的url;
可以理解mirror是復寫了對應id的repository
mirror相當於一個攔截器,它會攔截maven對remote repository的相關請求,把請求里的remote repository地址,重定向到mirror里配置的地址。
2.1 沒有配置mirror:

image.png
2.2 配置mirror:

image.png
<mirrorOf>A</mirrorOf> 此時,B Repository被稱為A Repository的鏡像。
如果倉庫X可以提供倉庫Y存儲的所有內容,那么就可以認為X是Y的一個鏡像。換句話說,任何一個可以從倉庫Y獲得的構件,都胡夠從它的鏡像中獲取
作者:舒爾誠
鏈接:https://www.jianshu.com/p/c2ca01cdcb6e
來源:簡書
著作權歸作者所有。商業轉載請聯系作者獲得授權,非商業轉載請注明出處。