maven的 SNAPSHOT和RELEASE版本說明

SnapshSNAPSHOTot和RELEASE區別

Snapshot:代表版本不穩定,尚處於開發當中,Release則代表穩定版本
  1. 如果deploy到遠程服務器,如果是release則只能deploy一次,以後部署的話則會造成衝突
  2. 如果是Snapshot的話,你可以多deploy幾次,每一次都會沖掉院線的版本

什麼情況下用SNAPSHOT?

  • 協同開發時候,如果A依賴B由於B會更新,則B應該標記SNAPSHOT

    1.1 因爲如果B不用SNAPSHOT而每次更新後都使用一個穩定版本,那麼版本號就會升的太快,每天一升或者每小時升,就會造成版本號的亂用
    1.2 如果B不用SNAPSHOT,但一直使用一個單一的Release版本號,那當B更新後,A可能並不會接受到更新。因爲A所使用的repository一般不會頻繁更新release版本的緩存(即本地repository),所以B以不換版本的方式更新,A在拿B時發現本地已有這個版本,就不會去遠程Repository下載最新的B

不用Release版本行不行?

  • 不行,正式環境中不得不使用SNAPSHOT版本庫,例如:今天你依賴某個snapshot版本的第三方庫成功構建了自己的應用,明天再構建時可能就會失敗,因爲今晚第三方可能已經更新了它的snapshot庫。你再次構建時,Maven會去遠程repository下載snapshot的最新版本,你構建時用的庫就是新的jar文件了,這時正確性就很難保證了。

什麼是release?

如下圖所示:
在這裏插入圖片描述
-用戶A將代碼打包到RELEASE倉庫。用戶B使用時,需要在pom.xml添加jar包的依賴座標。如果用戶A將jar包版本從1.0升級到2.0,用戶B使用時也需要在pom.xml中修改座標版本。但是RELEASE表示是穩定版本,是經過測試以後纔會發佈的,通常不會頻繁地升級版本。

快照SNAPSHOT?

在這裏插入圖片描述
-SNAPSHOT是不穩定版本,可能是還在開發中的版本,在開發時用戶A可能每天都會更新代碼,可能會頻繁地發佈版本.而另一組用戶B需要實時得到A的最新代碼版本,,以進行同步開發。如果使用RELEASE倉庫需要不停地更換座標,才能升級到最新版本。而在SNAPSHOT倉庫則不需要這麼做,用戶A和用戶B都不用升級版本。用戶A每次發佈時會根據當時的時間創建一個新的快照版本,之前的吧、快照版本也會保留成爲歷史版本。用戶B每次構建項目時會自動根據版本時間加載最新的依賴jar包。所以這種模式更加適合於多模塊同步開發測試階段。

參考:https://www.pianshen.com/article/7598780279/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章