在項目開發中,一般是部署過程包含如下步驟apache
檢入代碼在建項目所有進入SVN或源代碼庫中,並標記它。swift
從SVN下載完整的源代碼。api
構建應用程序。網絡
生成輸出要麼WAR或EAR文件存儲到一個共同的網絡位置。maven
從網絡獲取的文件和文件部署到生產現場。svn
更新日期和應用程序的更新版本號的文件。測試
一般有多人蔘與了上述部署過程。一個團隊可能手動簽入的代碼,其餘人能夠處理構建等。這極可能是任何一個步驟可能會錯過了,因爲涉及和因爲多團隊環境手動工做。例如,較舊的版本可能不會被更換網絡設備和部署團隊再部署舊版本。ui
經過結合自動化的部署過程google
Maven構建和釋放項目,url
SubVersion源代碼庫,管理源代碼,
和遠程存儲庫管理器(Jfrog/ Nexus)來管理項目的二進制文件。
咱們將使用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-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文件。