maven snapshot和release版本的區別

來源:互聯網
上載者:User

標籤:

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

      maven中的倉庫分為兩種,snapshot快照倉庫和release發布倉庫。snapshot快照倉庫用於儲存開發過程中的不穩定版 本,release正式倉庫則是用來儲存穩定的發行版本。定義一個組件/模組為快照版本,只需要在pom檔案中在該模組的版本號碼後加上-SNAPSHOT即可(注意這裡必須是大寫),如下:

  1. <groupId>cc.mzone</groupId>
  2. <artifactId>m1</artifactId>
  3. <version>0.1-SNAPSHOT</version>
  4. <packaging>jar</packaging>

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

      所以,我們在開發階段,可以將公用庫的版本設定為快照版本,而被相依元件則引用快照版本進行開發,在公用庫的快照版本更新後,我們也不需要修改pom文 件提示版本號碼來下載新的版本,直接mvn執行相關編譯、打包命令即可重新下載最新的快照庫了,從而也方便了我們進行開發。

(轉) maven snapshot和release版本的區別

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.