maven中snapshot和release版本的區(qū)別

Snapshot版本代表尚處于開發(fā)中的不穩(wěn)定版本
Release版本則代表穩(wěn)定的版本

1. 什么情況下該用SNAPSHOT?

協(xié)同開發(fā)時(shí),如果A依賴構(gòu)件B,由于B會(huì)更新,B是否應(yīng)該使用SNAPSHOT來標(biāo)識(shí)自己,舉例如下:

a.如果B不用SNAPSHOT,而是每次更新后都使用一個(gè)穩(wěn)定的版本,那版本號(hào)就會(huì)升得太快,每天一升甚至每個(gè)小時(shí)一升,這就是對(duì)版本號(hào)的濫用。

b.如果B不用SNAPSHOT, 但一直使用一個(gè)單一的Release版本號(hào),那當(dāng)B更新后,A可能并不會(huì)接受到更新。因?yàn)锳所使用的repository一般不會(huì)頻繁更新release版本的緩存(即本地repository),所以B以不換版本號(hào)的方式更新后,A在拿B時(shí)發(fā)現(xiàn)本地已有這個(gè)版本,就不會(huì)去遠(yuǎn)程Repository下載最新的B

2. 不用Release版本,在所有地方都用SNAPSHOT版本行不行?

不行。正式環(huán)境中不得使用snapshot版本的庫。 比如說,今天你依賴某個(gè)snapshot版本的第三方庫成功構(gòu)建了自己的應(yīng)用,明天再構(gòu)建時(shí)可能就會(huì)失敗,因?yàn)榻裢淼谌娇赡芤呀?jīng)更新了它的snapshot庫。你再次構(gòu)建時(shí),Maven會(huì)去遠(yuǎn)程repository下載snapshot的最新版本,你構(gòu)建時(shí)用的庫就是新的jar文件了,這時(shí)正確性就很難保證了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容