1. 程式人生 > >Maven版本管理

Maven版本管理

Maven2有版本2.0.9、2.0.10等各個版本,Maven3有3.0-alpha-1、3.0-beta-1等版本,這些版本中的每個數字代表了什麼意思?alpha、beta是什麼意思?快照版本和釋出版本的區別是什麼?如何科學的管理專案版本。

Maven的版本號定義約定

<主版本>.<次版本>.<增量版本>-<里程碑版本>

示例:1.3.5-beta-2
“1”:表示該版本是第一個重大版本
“3”:表示這是基於重大版本的第三個次要版本
“5”:表示該次要版本的第五個增量版本
“beta-2”:表示增量的一個里程碑版本

自動化版本釋出

Maven Release Plugin提供這樣的功能,主要有三個目標:

  • release:prepare 準備版本釋出,依次執行下列操作。
    程式碼有未提交
    是否有快照版本依賴
    根據使用者輸入讓快照版本升級為釋出版本
    將POM中的SCM資訊更新為標籤地址
    基於修改後的POM執行Maven構建
    提交POM變更
    基於使用者輸入為程式碼打標籤
    將程式碼從釋出版本升級為新的快照版本
    提價POM變更
  • release:rollback
    回退release:prepare所執行的操作。將POM回退至release:prepare之前的狀態,並提交。需要注意的是,該步驟不會刪除release:prepare生成的標籤,需要手工刪除
  • release:perform
    執行版本釋出。簽出release:prepare生成的標籤中的原始碼,並在此基礎上執行mvn deploy命令打包並部署構建至倉庫。

GPG簽名

當從中央倉庫下載第三方構建的時候,可能會想要驗證這些檔案的合法性。例如它是由開源專案官方釋出的,並且沒有被篡改過。
GPG(Pretty Good Privacy)就是這樣一個用來提高安全性的技術。PGP最常用來給電子郵件進行加密、解密以及提供簽名,以提高電子郵件交流的安全性。

GnuPG(簡稱GPG,官網地址http://www.gnupg.org/)是PGP標準的一個免費實現。GPG能夠幫助我們為檔案生成簽名、管理金鑰以及驗證簽名等。