簡(jiǎn)介
- snapshot快照倉(cāng)庫(kù)用于保存開(kāi)發(fā)過(guò)程中的不穩(wěn)定版本
- release正式倉(cāng)庫(kù)則是用來(lái)保存穩(wěn)定的發(fā)行版本
策略
- 識(shí)別方式:maven會(huì)根據(jù)模塊的版本號(hào)(pom文件中的version)中是否帶有-SNAPSHOT來(lái)判斷是快照版本還是正式版本。
- snapshot版本更新策略:如果是快照版本,那么在mvn deploy時(shí)會(huì)自動(dòng)發(fā)布到快照版本庫(kù)中,而使用快照版本的模塊,在不更改版本號(hào)的情況下,直接編譯打包時(shí),maven會(huì)自動(dòng)從鏡像服務(wù)器上下載最新的
快照版本。 - release版本更新策略:如果是正式發(fā)布版本,那么在mvn deploy時(shí)會(huì)自動(dòng)發(fā)布到正式版本庫(kù)中,而使用正式版本的模塊,在不更改版本號(hào)的情況下,編譯打包時(shí)如果本地已經(jīng)存在該版本的模塊則不會(huì)主動(dòng)去鏡像服務(wù)器上下載。
- 使用建議:在開(kāi)發(fā)階段,可以將公用庫(kù)的版本設(shè)置為快照
版本,而被依賴組件則引用快照版本進(jìn)行開(kāi)發(fā),在公用庫(kù)的快照版本更新后,我們也不需要修改pom文件提示版本號(hào)來(lái)下載新的版本,直接
mvn執(zhí)行相關(guān)編譯、打包命令即可重新下載最新的快照庫(kù)了,從而也方便了我們進(jìn)行開(kāi)發(fā)
snapshot版本更新頻率
Maven的Repository中有個(gè)配置項(xiàng),可以配置對(duì)于SNAPSHOT版本向遠(yuǎn)程倉(cāng)庫(kù)中查找的頻率。頻率共有四種:always、daily、interval、never。
當(dāng)本地倉(cāng)庫(kù)中存在需要的依賴項(xiàng)目時(shí),
- always是每次都去遠(yuǎn)程倉(cāng)庫(kù)查看是否有更新
- daily是只在第一次的時(shí)候查看是否有更新,當(dāng)天的其它時(shí)候則不會(huì)查看
- interval允許設(shè)置一個(gè)分鐘為單位的間隔時(shí)間,在這個(gè)間隔時(shí)間內(nèi)只會(huì)去遠(yuǎn)程倉(cāng)庫(kù)中查找一次
- never是不會(huì)去遠(yuǎn)程倉(cāng)庫(kù)中查找
Maven的snapshot版本更新策略的配置方式:
<repository>
<id>myRepository</id>
<url>...</url>
<snapshots>
<enabled>true</enabled>
<updatePolicy>XXX</updatePolicy>
</snapshots>
</repository>
強(qiáng)制更新snapshot依賴包
如果在使用mvn打包時(shí),希望本次更新最新的snapshot依賴包,則使用如下命令
mvn clean package -U -Dmaven.test.skip=true