為什麼使用映象
當maven在本地找不到包的時候,就嘗試從中央倉庫(https://repo1.maven.org/maven2/
)獲取,有的時候我們訪問外網太慢了,我們就從映象倉庫(別的倉庫或者自己的私有倉庫)獲取。
設定映象
<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
指定映象的規則。就是什麼情況會從映象倉庫拉取,而不是從原本的倉庫拉取
可選項參考連結:-
*
匹配所有 -
external:*
除了本地快取之後的所有倉庫 -
repo,repo1
repo
或者repo1
。 這裡repo
指的是倉庫的id,下文會提到 -
*,!repo1
除了repo1
的所有倉庫
-
-
name
名稱描述 -
url
地址
上述的例子
除了mmkj
倉庫之外,其他的全從自己的私有倉庫獲取(倉庫我做了代理,會自動從中央倉庫https://repo1.maven.org/maven2/
獲取).
多倉庫配置
參考連結
第三方包,自己公司的包等除了手動install:install-file
匯入之外,最好的辦法就是搭建自己公司的私有倉庫,這裡推薦使用nexus, 這樣除了中央倉庫之外就需要設定自己的倉庫了
設定多倉庫有2個方法:
- pom設定(java的pom檔案)
<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
使用的
- setting設定(
${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 ...