在專案開發中,通常是部署過程包含以下步驟
-
檢入代碼在建專案全部進入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檔。