Maven自動化部署
在項目開發中,通常是部署過程包含以下步驟
-
檢入代碼在建項目全部進入SVN或源代碼庫中,並標記它。
-
從SVN下載完整的源代碼。
-
構建應用程序。
-
生成輸出要麼WAR或EAR文件存儲到一個共同的網絡位置。
-
從網絡獲取的文件和文件部署到生產現場。
-
更新日期和應用程序的更新版本號的文件。
問題說明
通常有多人參與了上述部署過程。一個團隊可能手動簽入的代碼,其他人可以處理構建等。這很可能是任何一個步驟可能會錯過了,由於涉及和由於多團隊環境手動工作。例如,較舊的版本可能不會被更換網絡設備和部署團隊再部署舊版本。
解決
通過結合自動化的部署過程-
Maven構建和釋放項目,
-
SubVersion源代碼庫,管理源代碼,
-
和遠程存儲庫管理器(Jfrog/ Nexus)來管理項目的二進製文件。
更新項目的pom.xml
我們將使用Maven發布插件來創建一個自動釋放過程。
例如:bus-core-api 項目POM.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <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>http://www.svn.com</url> <connection>scm:svn:http://localhost:8080/svn/jrepo/trunk/ 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>http://localhost:8081/nexus/content/repositories/ 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 | Configures the SVN location from where Maven will check out the source code. |
Repositories | Location where built WAR/EAR/JAR or any other artifact will be stored after code build is successful. |
Plugin | maven-release-plugin is configured to automate the deployment process. |
Maven發布插件
Maven使用確實下列有用的任務maven-release-plugin.
mvn release:clean
它清除以防工作區的最後一個釋放的過程並不順利。
mvn release:rollback
回滾是為了以防工作空間代碼和配置更改的最後一個釋放的過程並不順利。
mvn release:prepare
執行多個操作次數
-
檢查是否有任何未提交的本地更改或不
-
確保冇有快照依賴
-
更改應用程序的版本並刪除快照從版本,以釋放
-
更新文件到 SVN.
-
運行測試用例
-
提交修改後POM文件
-
標簽代碼在subversion中
-
增加版本號和附加快照以備將來發行
-
提交修改後的POM文件到SVN。
mvn release:perform
檢查出使用前麵定義的標簽代碼並運行Maven的部署目標來部署戰爭或內置工件檔案庫。
讓我們打開命令控製台,到 C: > MVN >bus-core-api 目錄並執行以下命令mvn命令。
C:MVNus-core-api>mvn release:prepare
Maven將開始建設該項目。一旦構建成功運行以下命令mvn命令。
C:MVNus-core-api>mvn release:perform
一旦構建成功,您可以在資料庫驗證上傳的JAR文件。