ant脚本-自动发布版本包

ant脚本-自动发布版本包

先简单说一下这个脚本的作用吧,脚本的作用为自动shutdown服务、自动备份项目到指定的目录、自动备份上次上传的版本包、自动将新的版本包上传到服务器上、自动解压、自动重启服务。脚本的所有参数都是在ant.properties中配置的,所以脚本非常灵活,如果要上传其他项目的版本包,只需要在配置文件中更改相应的目录即可。

ant.properties文件包含了以下属性:ftp.server(服务器IP)、ftp.username(登录名)、ftp.password(登录密码)和ftp.dir(需要操作的目录)。


ant脚本的具体内容如下:

<?xml version="1.0" encoding="UTF-8" ?>
 <!-- ===================================================================================================
          运行脚本前在本地随意找一个目录,在目录下新建一个totalpackage 文件夹,将全量zip包放到文件夹下,
          运行脚本即可,运行脚本前会先备份服务器上的webapps下的mer到ftp的comversion目录下,
          然后备份上次上传的mer版本包名称为mercomversion_时间戳.zip       
         =================================================================================================== -->
<project name="将mer包上传到服务器上" default="remote-tomcat-start">
 <!-- 引入自定义属性配置文件,定义svn、ftp常用信息-->
 <property file="ant.properties" />
 <!-- totalpackage变量存放最新版本包路径 -->
<property name="package" value="${basedir}\totalpackage\"/>  
<!-- tomcat.home变量存放服务器上tomcat路径 -->  
<property name="tomcat.home" value="${ftp.dir}/tomcat8"/>
<!-- sleep.time休眠时间 -->  
<property name="sleep.time" value="3"/>
 
 <target name="testdir">
 <echo>第一步测试属性配置文件中的字段是否引入成功</echo>
  <echo>[SYSTEM INFO]ftp.username====${ftp.username}</echo>
   <echo>[SYSTEM INFO]ftp.password====${ftp.password}</echo>
   <echo>[SYSTEM INFO] ftp.server====${ftp.server}</echo>
   <echo>[SYSTEM INFO]ftp.dir====${ftp.dir}</echo>
  <echo message="=================>>echo===>>testdir end" />
 </target>


<!--将mer包上传到服务器上-->
 <target name="ftp.upload" depends="mer.backup">
 <echo>第四步备份全量包后上传新的全量包</echo>
  <!--将mer包通过ssh/sftp上传到服务器上-->
  <echo>上传mer到${ftp.dir}目录</echo>
  <scp file="${package}\${webapp.name}.zip" todir="${ftp.username}:${ftp.password}@${ftp.server}:${ftp.dir}" password="${ftp.password}" trust="true"/>
 </target>
 <!-- ===================================================================================================
          SFTP UPLOAD mer END              
         =================================================================================================== -->

 <!-- ===================================================================================================
          DEPLOY mer BEGIN              
         =================================================================================================== -->
 
 <!--使用ant sshexec命令直接执行linux常用命令-->
 
 <target name="exec.deploy" depends="ftp.upload">
 <echo>第五步将mer包部署在服务器tomcat上</echo>
  <!--使用ant sshexec命令执行启动tomcat命令-->
  <echo>发布mer服务</echo>
  <sshexec host="${ftp.server}" username="${ftp.username}"  password="${ftp.password}" trust="true"
  command="
  cd ${ftp.dir};
  ls;
  unzip -o -d tomcat8/webapps/${webapp.name} ${webapp.name}.zip;
  "
  />
 </target>
 
 <target name="remote-tomcat-start" depends="exec.deploy">
 <echo>第六步将mer包部署在服务器tomcat上,并启动该tomcat</echo>
     <sshexec host="${ftp.server}" username="${ftp.username}"  password="${ftp.password}" command="${tomcat.home}/bin/startup.sh" trust="true"/>
 </target>  
 
   <target name="remote-tomcat-stop" depends="testdir">
   <echo>第二步在做所有的操作之前先停止tomcat</echo>
 <sshexec host="${ftp.server}" username="${ftp.username}"  password="${ftp.password}" command="${tomcat.home}/bin/shutdown.sh" trust="true"/>
 <sleep seconds="${sleep.time}" />
   </target>


<target name="mer.backup" depends="remote-tomcat-stop">
<echo>第三步停止tomcat之后备份增量包和全量包到指定的backup目录</echo>
  <!--使用ant sshexec命令执行启动tomcat命令-->
  <echo>备份增量包和全量包到指定的目录</echo>
  <sshexec host="${ftp.server}" username="${ftp.username}"  password="${ftp.password}" trust="true"
  command="
  cd ${ftp.dir};
  mv mer.zip mercomversion_`date +%y%m%d%H%M%S`.zip;
  cd ${tomcat.home}/webapps;
  tar -zcvf mer_`date +%y%m%d%H%M%S`.tar.gz mer;
  ls;
  mv ${tomcat.home}/webapps/mer*.tar.gz ${ftp.dir}/comversion;
  "
  />
 </target>
 <!-- ===================================================================================================
          DEPLOY mer END              
         =================================================================================================== -->
</project>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值