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倉庫則不需要這樣做,
SNAPSHOT倉庫用法
和RELEASE倉庫類似,在pom.xml中設定快照倉庫如下
- <distributionManagement>
- <snapshotRepository>
- <id>snapshot</id>
-
<name>snapshot</name>
- <url>http://localhost:8081/repository/maven-snapshots/</url>
- </snapshotRepository>
- </distributionManagement>
同時設定version中的版本後面必須有 -SNAPSHOT,此後綴代表這是一個快照版
- <version>1.0-SNAPSHOT</version>
在setting.xml中設定使用者名稱密碼,id要和上面對應。和RELEASE一樣
-
<servers>
- <server>
- <id>snapshot</id>
- <username>admin</username>
- <password>admin123</password>
- </server>
- </servers>
執行nexus私服(參考前兩篇),在eclipse中右擊maven專案--執行方式--maven build... 在goals中輸入deploy,執行。
在nexus介面中點選最上排的方塊圖示--browse--components選單--maven-snapshots倉庫。如下,我沒有改座標,連續釋出了幾次,可以發現name列和group列是完全一樣的,version列根據釋出時間不同自動在1.0後面加上了當前時間,以此區別不同版本