溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

什么是maven快照 更新策略

發(fā)布時(shí)間:2021-10-19 16:50:10 來(lái)源:億速云 閱讀:306 作者:柒染 欄目:大數(shù)據(jù)

什么是maven快照 更新策略,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

1、為什么會(huì)有快照?

沒(méi)有快照之前:

                  A項(xiàng)目依賴于項(xiàng)目B,B每次改動(dòng)就賦予一個(gè)新版本號(hào),然后告訴A我改版本好了啊,每次改動(dòng)都得告訴,有時(shí)忘了就麻煩了。

               可以看出沒(méi)有快照會(huì)帶來(lái)“浪費(fèi)版本號(hào)”、溝通成大加大的問(wèn)題。

有了快照之后:

               A項(xiàng)目依賴于項(xiàng)目B,B每次改動(dòng)都會(huì)打上時(shí)間戳,A編譯時(shí)會(huì)檢查B的時(shí)間戳,如果晚于本地倉(cāng)庫(kù)B的時(shí)間戳,那么就會(huì)進(jìn)行更新,否則不予更新。

             可以看出快照省去了溝通成本、版本號(hào)成本。

2、快照更新策略

注意,快照并不是每次install就會(huì)更新,這取決于更新策略;快照更新策略,有每日更新、永遠(yuǎn)檢查更新、從不檢查更新和自定義時(shí)間間隔更新,默認(rèn)是每日更新也就是說(shuō)一日更新一次,如果想總是更新,那么可以在settings.xml中配置。比如

<profile>
            <id>nexus</id>
            <repositories>
                <repository>
                    <id>central</id>
                    <url>http://central</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots>
                </repository>
            </repositories>
</profile>


也可以通過(guò)命令強(qiáng)制更新,mvn clean install-U

一次針對(duì)現(xiàn)有的http服務(wù)開(kāi)發(fā)了一個(gè)SNAPSHOT版本的調(diào)用SDK jar包。QA同學(xué)部署到測(cè)試環(huán)境后,我又更新了一下jar包的內(nèi)容,此時(shí)QA同學(xué)再次部署時(shí)并沒(méi)有拉去到最新的jar包,這個(gè)就比較奇怪了。記憶中maven不是每次都從私服去檢查
SNAPSHOT類型的jar包是否有更新嗎?怎么對(duì)我就不起作用了呢?原來(lái)也是一直這么使用的的,換個(gè)公司就不行了?最后通過(guò)閱讀官方文檔才發(fā)現(xiàn)自己的理解不到位。

為什么使用SNAPSHOT類型的依賴?

答案當(dāng)然是不想每次有點(diǎn)代碼改動(dòng)都升級(jí)一下版本。

maven如何處理SNAPSHOT類型的依賴?

第一次構(gòu)建的時(shí)候會(huì)把該庫(kù)從遠(yuǎn)程倉(cāng)庫(kù)中下載到本地倉(cāng)庫(kù)緩存中,然后根據(jù)pom文件的配置不定期檢查該快照版本是否有變更。如果有變更則會(huì)重新拉去最新的jar。

檢查頻率配置
1
2
3
4
5
6
7
8
<repository>
    <id>myRepository</id>
    <url>...</url>
    <snapshots>
        <enabled>true</enabled>
        <updatePolicy>更新策略</updatePolicy>
    </snapshots>
</repository>

更新策略有一下幾種:

  • always 每次構(gòu)建都檢查遠(yuǎn)程倉(cāng)庫(kù)中該依賴jar包是否有更新

  • daily 每天檢查一次 (默認(rèn)策略)

  • interval:XXX 指定檢查時(shí)間間隔,單位是分鐘。

  • never 從不檢查。該策略就和正式版本的處理規(guī)則一樣了。

參考

http://maven.apache.org/ref/3.5.0/maven-settings/settings.html

看完上述內(nèi)容,你們掌握什么是maven快照 更新策略的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI