Maven的Snapshot版本與Release版本

在使用maven過程當中,咱們在開發階段常常性的會有不少公共庫處於不穩定狀態,隨時須要修改併發布,可能一天就要發佈一次,遇到bug時,甚至一天要發佈N次。咱們知道,maven的依賴管理是基於版本管理的,對於發佈狀態的artifact,若是版本號相同,即便咱們內部的鏡像服務器上的組件比本地新,maven也不會主動下載的。若是咱們在開發階段都是基於正式發佈版原本作依賴管理,那麼遇到這個問題,就須要升級組件的版本號,可這樣就明顯不符合要求和實際狀況了。可是,若是是基於快照版本,那麼問題就自熱而然的解決了,而maven已經爲咱們準備好了這一切。服務器

      maven中的倉庫分爲兩種,snapshot快照倉庫和release發佈倉庫。snapshot快照倉庫用於保存開發過程當中的不穩定版本,release正式倉庫則是用來保存穩定的發行版本。定義一個組件/模塊爲快照版本,只須要在pom文件中在該模塊的版本號後加上-SNAPSHOT便可(注意這裏必須是大寫),以下:併發

<groupId>cc.mzone</groupId>
<artifactId>m1</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>jar</packaging>

      maven2會根據模塊的版本號(pom文件中的version)中是否帶有-SNAPSHOT來判斷是快照版本仍是正式版本。若是是快照版本,那麼在mvn deploy時會自動發佈到快照版本庫中,而使用快照版本的模塊,在不更改版本號的狀況下,直接編譯打包時,maven會自動從鏡像服務器上下載最新的快照版本。若是是正式發佈版本,那麼在mvn deploy時會自動發佈到正式版本庫中,而使用正式版本的模塊,在不更改版本號的狀況下,編譯打包時若是本地已經存在該版本的模塊則不會主動去鏡像服務器上下載。maven

      因此,咱們在開發階段,能夠將公用庫的版本設置爲快照版本,而被依賴組件則引用快照版本進行開發,在公用庫的快照版本更新後,咱們也不須要修改pom文件提示版本號來下載新的版本,直接mvn執行相關編譯、打包命令便可從新下載最新的快照庫了,從而也方便了咱們進行開發。spa

相關文章
相關標籤/搜索