1. 程式人生 > >Maven探究二:快照與釋出,RELEASE與SNAPSHOT

Maven探究二:快照與釋出,RELEASE與SNAPSHOT



釋出RELEASE

使用者A將程式碼打包釋出到RELEASE倉庫,具體操作參考上篇文章。使用者B使用時,需要在pom.xml新增JAR包的依賴座標。如果使用者A將版本從1.0升級為2.0,使用者B使用時也需要同時在pom.xml中修改座標版本。但是RELEASE是穩定版本,是經過測試以後才會釋出的,通常不會頻繁的升級版本

快照SNAPSHOT

SNAPSHOT是不穩定版,可能是還在開發中的版本,在開發時使用者A可能每天都會更新程式碼,可能會頻繁的釋出版本。而另一組使用者B需要實時得到A的最新程式碼版本,以進行同步開發。如果使用RELEASE倉庫需要不停的更換座標,才能升級到最新版本。而SNAPSHOT倉庫則不需要這樣做,

使用者A和使用者B都不用升級版本。使用者A每次釋出時會根據當時時間建立一個新的快照版本,之前的快照版本也會保留成為歷史版本。使用者B每次構建專案時會自動根據版本時間載入最新的JAR包,這種模式更加適合於多模組同步開發測試階段

SNAPSHOT倉庫用法

和RELEASE倉庫類似,在pom.xml中設定快照倉庫如下

  1. <distributionManagement>  
  2.     <snapshotRepository>  
  3.         <id>snapshot</id>  
  4.         <name>snapshot</name>  
  5.         <url>http://localhost:8081/repository/maven-snapshots/</url>  
  6.     </snapshotRepository>  
  7. </distributionManagement>  

同時設定version中的版本後面必須有 -SNAPSHOT,此後綴代表這是一個快照版

  1. <version>1.0-SNAPSHOT</version>   

在setting.xml中設定使用者名稱密碼,id要和上面對應。和RELEASE一樣

  1. <servers>  
  2.     <server>  
  3.         <id>snapshot</id>  
  4.         <username>admin</username>  
  5.         <password>admin123</password>  
  6.     </server>  
  7. </servers>  

執行nexus私服(參考前兩篇),在eclipse中右擊maven專案--執行方式--maven build...  在goals中輸入deploy,執行。

在nexus介面中點選最上排的方塊圖示--browse--components選單--maven-snapshots倉庫。如下,我沒有改座標,連續釋出了幾次,可以發現name列和group列是完全一樣的,version列根據釋出時間不同自動在1.0後面加上了當前時間,以此區別不同版本