在项目开发中,通常是部署过程包含以下步骤

  • 检入代码在建项目全部进入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:\MVN\bus-core-api>mvn release:prepare


Maven将开始建设该项目。一旦构建成功运行以下命令mvn命令。


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


一旦构建成功,您可以在资料库验证上传的JAR文件。