Maven 项目自动部署项目脚本(jboss)

来源:互联网 发布:淘宝评价多长时间消失 编辑:程序博客网 时间:2024/06/14 11:24

    在工作中,使用自动化技术部署项目是非常方便的,尤其是对于持续性迭代开发的项目。此博客仅针对于中小型项目,使用svn进行项目管理,使用maven进行模块儿管理的项目使用。这种项目一般来说,svn会键在一台单独的服务器上,maven私服又会建在 另一台私服上,也有可能建立在同一台服务器上。 针对于这种架构的项目,笔者遇到的也 就两种情况:

    1. 自动化打包svn 仓库的代码,此种情况使用于项目上线

    2. 自动化打包本地代码,  此种情况适用于非上线的个人测试。

 

   这是最简单的两种方式,通常情况下,开发环境,测试环境和生成环境是一些配置 文件是不一样的,所以通常我们会在打包之前进行修改配置。虽然说目前网上 有很多开源免费的自动化部署工具,如jenkins,但是往往不能满足我们个性化的需求。而且使用起来也并不简单。在 笔者看来,在执行自动化 部署的时候,最简单的方式,莫过于使用批处理文件,直接双击一下运行就ok了。 或许有的人会说,这种方式不灵活,但是,试问一下,为什么一定要写成非常灵活呢? 定制化的才是最适合自己的,才是 最简单的。 所以笔者在 进行项目之间迁移的时候,只需要修改一下脚本中相关的参数即可。笔者只对第二种情况进行演示:


1.  Maven 自动打包脚本:package.bat

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                                                                      ::::                       Maven 自动打包脚本                             ::::                                                                      ::::       1.切换磁盘,进入项目所在目录                                   ::::       2.执行install命令,保证本地仓库jar包为最新的代码               ::::       3.进入Controller所在目录                                       ::::       4.如果war包已经存在,则删除                                    ::::       5.执行package命令进行打包                                      ::::                                                                      ::::                                                                      ::::                                                     @auth:zonggf     ::::                                                     @date: 2016.6.15 :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: 设置变量:项目所在磁盘 ,项目所在目录,项目名称set disk=D:set projectDir=D:/workset projectName=helloWorld:: 1.切换磁盘%disk%::进入项目根目录(主要是包含模块管理的pom),执行install操作,将本地代码打成最新的jar包,上传到本地仓库cd %projectDir%call mvn clean install -Dmaven.test.skip=true::如果 target 目录下已经有war包的话,则删除cd %projectName%/targetif exist %projectDir%/%projectName%.war (del %projectDir%/%projectName%.war) ::回到pom.xml 所在目录,执行maven 打包命令cd ..call mvn package -Dmaven.test.skip=truepause

2.  自动部署脚本:deploy.bat

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::                                                                      ::::               FTP 自动部署项目脚本(jboss 服务器)                   ::::                                                                      ::::       1. 步骤:                                                      ::::          1.1 使用ftp连接服务器                                       ::::          1.2 重命名之前的war包,做为备份                             ::::          1.3 删除之前的项目的相关部署文件,jboss会有                 ::::          1.4 上传最新的war包,jboss支持热部署                        ::::       2. 注意:                                                      ::::          2.1 服务器必须开启了ftp                                     ::::          2.2 此脚本只能保证上传成功,不能保证重新部署不报错,        ::::              是否能成功,重新部署,看路径下是由有 xx.deployed 文件   ::::                                                                      ::::                                                     @auth:zonggf     ::::                                                     @date: 2016.6.15 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::rem 1.设置变量:: 设置变量:项目所在目录, 项目名称set webModuleDir=D:/work/helloWorldset projectName=helloWorld:: 设置变量:服务器用户名,密码,ip地址, 端口号默认21set username=rootset password=123456set ip=xxx.xxx.xxx.xxxxset serverDir=/usr/zong/servers/jboss-as-7.1.1.Final/standalone/deployments::设置变量:当前时间,格式:20160615.095802for /f "tokens=2 delims==" %%a in ('wmic path win32_operatingsystem get LocalDateTime /value') do (  set t=%%a)set hour=%time:~0,2%if %hour% geq 10 (set Time=%t:~0,8%.%t:~8,6%) else (set Time=%t:~0,8%.0%t:~9,5%)rem 2. 编写ftp脚本命令@echo off:: 2.1 将 ftp相关命令写入 temp.txt 文件, > 表示清空再追加, >> 表示直接追加echo open %ip%>temp.txtecho user %username% %password% >>temp.txtecho cd %serverDir% >>temp.txt:: 2.2 将之前的war包重命名,删除之前部署的相关信息(jboss 会产生falcon-controller.war.isdeploying,falcon-controller.war.deployed, falcon-controller.war.failed 等文件)::关闭ftp交互提示echo prompt >>temp.txtecho rename %projectName%.war bk.%projectName%.war.%Time% >>temp.txtecho mdelete %projectName%.war.* >>temp.txt:: 2.3 上传新的war包echo send %webModuleDir%/target/%projectName%.war >>temp.txt:: 2.4 退出ftp连接echo bye>>temp.txtrem 3.执行ftp命令ftp -n -s:temp.txtrem 4. 删除临时命令文件temp.txtdel temp.txtpause

3. 注意事项:

    1. 只能运行在windows 电脑上

    2. 本地需要配置maven 环境,这样才能使用mvn命令

    3. 目标服务器必须开启了ftp服务

    4. 此脚本只能使用于jboss应用服务器,并不适合tomcat , 因为tomcat 会自动解压war包为目录,但是ftp命令并不提供删除非空文件夹的命令







0 0
原创粉丝点击