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

  • 检入代码在建项目全部进入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文件。

 

标签:Maven    自动化部署

本站文章除注明转载外,均为本站原创或编译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创优秀实例教程
转载请注明:文章转载自:http://www.yiibai.com/maven/maven_deployment_automation.html

maven 学习---Maven自动化部署的更多相关文章

  1. Jenkins+Ant/maven+Svn实现自动化部署,编译,运行,测试结果自动邮件通知

    Jenkins+Ant+Svn实现自动化部署,编译,运行,测试结果自动邮件通知

  2. maven 学习---Maven教程

    Apache Maven是一个软件项目管理和综合工具.基于项目对象模型(POM)的概念,Maven可以从一个中心资料片管理项目构建,报告和文件. 本教程将介绍如何使用Maven在Java开发,或任何其 ...

  3. Python学习笔记—自动化部署【新手必学】

      前言本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理.作者:唯恋殊雨   目录 pexpect fabric pexpect P ...

  4. maven 学习---Maven安装配置

    想要安装 Apache Maven 在Windows 系统上, 只需要下载 Maven 的 zip 文件,并将其解压到你想安装的目录,并配置 Windows 环境变量. 所需工具 : JDK 1.8 ...

  5. maven 学习---Maven添加远程仓库

    默认情况下,Maven从Maven中央仓库下载所有依赖关系.但是,有些库丢失在中央存储库,只有在Java.net或JBoss的储存库远程仓库中能找到. 1. Java.net资源库 添加Java.ne ...

  6. maven 学习---Maven中央存储库

    当你建立一个 Maven 的项目,Maven 会检查你的 pom.xml 文件,以确定哪些依赖下载. 首先,Maven 将从本地资源库获得 Maven 的本地资源库依赖资源, 如果没有找到,然后把它会 ...

  7. 【经验】Maven Tomcat8+ 实现自动化部署

    1.配置tomcat-users.xml 首先在Tomcat里配置deploy的用户(tomcat根目录/conf/tomcat-users.xml): <role rolename=" ...

  8. Maven Tomcat7+ 实现自动化部署

    首先在Tomcat里配置deploy的用户(tomcat根目录/conf/tomcat-users.xml): <role rolename="tomcat"/> &l ...

  9. maven 学习---Maven构建自动化-Hudson

    建立自动化定义场景,依赖项目建设过程中被启动,一旦项目生成成功完成,以确保相关的项目是稳定的. 实例 考虑一个团队正在开发一个项目总线核心API上的其他两个项目的应用程序,网页UI和应用程序的桌面UI ...

随机推荐

  1. 6.JavaCC官方入门指南-例1

    例1:整数加法运算   在这个例子中,我们将判断如下输入的式子是否是一个合法的加法运算: 99 + 42 + 0 + 15   并且在输入上面式子的时候,数字与加号之间的任何位置,都是可以有空格或者换 ...

  2. bayaim_hadoop2_hdfs_20181107

    ------------------bayaim_bayaim_hadoop2_hdfs_20181107--------------------------------- HDFS 原理:上传数据要 ...

  3. [Go] 分页计算页码的主要逻辑

    当使用imap进行读取邮件体的时候,有个函数可以根据传入的开始和结束索引来一次读取多条邮件内容主要逻辑类似这样,从1开始, 1,10   11,20     21,30 或者 1,31   32,63 ...

  4. JSON理解(一篇就够了)

    可以看看视频讲解,视频几十分钟就结束了 JSON 1.什么是json 其实是一种数据格式的规范,与开发的语言无关,轻量级的数据格式 全称JavaScript Object Notation 2.优点: ...

  5. is ==的区别 编码和解码

    1.n=0 n1=0 print(n==n1) ==>true  == 是比较两边的值 2.a="alex " b="alex" print(a==b)= ...

  6. [C2P1] Andrew Ng - Machine Learning

    About this Course Machine learning is the science of getting computers to act without being explicit ...

  7. layui中form表单渲染的问题

    layui 官网的这部分文档介绍:http://www.layui.com/doc/modules/form.html#render 注意:针对的是表单元素,input select  textare ...

  8. 【oracle】INSERT INTO SELECT

  9. redis.windows.conf 配置注释

    . daemonize no Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程 . pidfile /var/run/redis_6379.pid 当Redis以守 ...

  10. Tomca原理分析之责任链

    责任链使用位置:Container处理请求 Container处理请求是使用Pipeline-Valve管道来处理的!(Valve是阀门之意) Pipeline-Valve是责任链模式,责任链模式是指 ...