當maven在本地找不到包的時候,就嘗試從中央倉庫(https://repo1.maven.org/maven2/
)獲取,有的時候咱們訪問外網太慢了,咱們就從鏡像倉庫(別的倉庫或者本身的私有倉庫)獲取。html
<mirror> <id>tz-mirror</id> <mirrorOf>external:*,!mmkj</mirrorOf> <name>tz test nexus repository</name> <url>http://xxxxx:30003/repository/maven-proxy</url> </mirror>
id
惟一標識mirrorOf
指定鏡像的規則。就是什麼狀況會從鏡像倉庫拉取,而不是從本來的倉庫拉取
可選項參考連接:java
*
匹配全部external:*
除了本地緩存以後的全部倉庫repo,repo1
repo
或者 repo1
。 這裏repo
指的是倉庫的id,下文會提到*,!repo1
除了repo1
的全部倉庫name
名稱描述url
地址上述的例子
除了mmkj
倉庫以外,其餘的全從本身的私有倉庫獲取(倉庫我作了代理,會自動從中央倉庫https://repo1.maven.org/maven2/
獲取).apache
參考連接
第三方包,本身公司的包等除了手動install:install-file
導入以外,最好的辦法就是搭建本身公司的私有倉庫,這裏推薦使用nexus, 這樣除了中央倉庫以外就須要設置本身的倉庫了緩存
設置多倉庫有2個方法:maven
<project> ... <repositories> <repository> <id>my-repo1</id> <name>your custom repo</name> <url>http://jarsm2.dyndns.dk</url> </repository> <repository> <id>my-repo2</id> <name>your custom repo</name> <url>http://jarsm2.dyndns.dk</url> </repository> </repositories> ... </project>
這裏的id
就是鏡像mirrorOf
使用的
${user.home}/.m2/settings.xml
)<settings> ... <profiles> ... <profile> <id>myprofile</id> <repositories> <repository> <id>my-repo2</id> <name>your custom repo</name> <url>http://jarsm2.dyndns.dk</url> </repository> ... </repositories> </profile> ... </profiles> <activeProfiles> <activeProfile>myprofile</activeProfile> </activeProfiles> ... </settings>
激活配置文件除了放在
activeProfiles
中以外,也能夠使用mvn的參數
mvn -Pmyprofile ...