假設我們在開發階段都是基於正式公布版本號來做依賴管理,那么遇到這個問題。就須要升級組件的版本號號,可這樣就明顯不符合要求和實際情況了。可是,假設是基於快照版本號,那么問題就自熱而然的攻克了,而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會自己主動從鏡像server上下載最新的快照版本號。
假設是正式公布版本號,那么在mvn deploy時會自己主動公布到正式版本號庫中。而使用正式版本號的模塊。在不更改版本號號的情況下,編譯打包時假設本地已經存在該版本號的模塊則不會主動去鏡像server下載。
所以,我們在開發階段,公共圖書館的版本號可以設置為快照版本。是依賴組件被引用的快照版本開發。快照版本更新的公共圖書館后。我們並不需要改變pom文件版本號提示下載新的版本號,直接mvn編譯相關的操作、包裝命令可以重新下載最新的快照庫,從而促進我們的發展。