Maven 自動化部署

JIAN2發表於2022-08-04

Maven 自動化部署

專案開發過程中,部署的過程包含需如下步驟:

  • 將所的專案程式碼提交到 SVN 或者程式碼庫中並打上標籤。
  • 從 SVN 上下載完整的原始碼。
  • 構建應用。
  • 儲存構建輸出的 WAR 或者 EAR 檔案到一個常用的網路位置下。
  • 從網路上獲取檔案並且部署檔案到生產站點上。
  • 更新文件並且更新應用的版本號。

問題描述

通常情況下上面的提到開發過程中會涉及到多個團隊。一個團隊可能負責提交程式碼,另一個團隊負責構建等等。很有可能由於涉及的人為操作和多團隊環境的原因,任何一個步驟都可能出錯。比如,較舊的版本沒有在網路機器上更新,然後部署團隊又重新部署了較早的構建版本。

解決方案

透過結合以下方案來實現自動化部署:

  • 使用 Maven 構建和釋出專案
  • 使用 SubVersion, 原始碼倉庫來管理原始碼
  • 使用遠端倉庫管理軟體(Jfrog或者Nexus) 來管理專案二進位制檔案。

修改專案的 pom.xml

我們將會使用 Maven 釋出的外掛來建立一個自動化釋出過程。

例如,bus-core-api 專案的 pom.xml 檔案程式碼如下:

< project xmlns = " "   xmlns:xsi = " "   xsi:schemaLocation = "   " >   < modelVersion > 4.0.0 </ modelVersion >   < groupId > bus-core-api </ groupId >   < artifactId > bus-core-api </ artifactId >   < version > 1.0-SNAPSHOT </ version >   < packaging > jar </ packaging >   < scm >       < url > </ url >       < connection > scm:svn:      Framework </ connection >       < developerConnection > scm:svn:${username}/${password}@localhost:8080:      common_core_api:1101:code </ developerConnection >   </ scm >   < distributionManagement >       < repository >         < id > Core-API-Java-Release </ id >         < name > Release repository </ name >         < url >         Core-Api-Release </ url >       </ repository >   </ distributionManagement >   < build >       < plugins >         < plugin >             < groupId > org.apache.maven.plugins </ groupId >             < artifactId > maven-release-plugin </ artifactId >             < version > 2.0-beta-9 </ version >             < configuration >               < useReleaseProfile > false </ useReleaseProfile >               < goals > deploy </ goals >               < scmCommentPrefix > [bus-core-api-release-checkin]- <               / scmCommentPrefix >             </ configuration >         </ plugin >       </ plugins >   </ build > </ project >

在 pom.xml 檔案中,我們常用到的一些重要元素節點如下表所示:

元素節點 描述
SCM 配置 SVN 的路徑,Maven 將從該路徑下將程式碼取下來。
repository 構建的 WAR 或 EAR 或JAR 檔案的位置,或者其他原始碼構建成功後生成的構件的儲存位置。
Plugin 配置 maven-release-plugin 外掛來實現自動部署過程。

Maven Release 外掛

Maven 使用 maven-release-plugin 外掛來完成以下任務。

mvn release:clean

清理工作空間,保證最新的釋出程式成功進行。

mvn release:rollback

在上次釋出過程不成功的情況下,回滾修改的工作空間程式碼和配置保證釋出過程成功進行。

mvn release:prepare

執行多種操作:

  • 檢查本地是否存在還未提交的修改
  • 確保沒有快照的依賴
  • 改變應用程式的版本資訊用以釋出
  • 更新 POM 檔案到 SVN
  • 執行測試用例
  • 提交修改後的 POM 檔案
  • 為程式碼在 SVN 上做標記
  • 增加版本號和附加快照以備將來發布
  • 提交修改後的 POM 檔案到 SVN
mvn release:perform

將程式碼切換到之前做標記的地方,執行 Maven 部署目標來部署 WAR 檔案或者構建相應的結構到倉庫裡。

開啟命令終端,進入到 C:\ > MVN >bus-core-api 目錄下,然後執行如下的 mvn 命令。

C:\MVN\bus-core-api>mvn release:prepare

Maven 開始構建整個工程。構建成功後即可執行如下 mvn 命令。

C:\MVN\bus-core-api>mvn release:perform

構建成功後,你就可以可以驗證在你倉庫下上傳的 JAR 檔案是否生效。



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70006413/viewspace-2908900/,如需轉載,請註明出處,否則將追究法律責任。

相關文章