项目自动化之道-3.按键发布Ant版

      为了发布所准备的内容有:1.标示发布的唯一名字和版本号,如userview-2.1。2.完整的功能和文件,例如说明文档和历史文件。3.安装方法,例如安装脚本或者安装包。

      发布的步骤为:1.发布工作应该从系统建立之初开始。2.首先应该对发布进行同步。所有程序员对代码进行签入。3.对当前工作进行健全性检查。即首先从仓库中签出代码,然后运行构建代码,修改到构建能够成功运行。4.生成发布分支。参考***建立发布分支,一般发布分支使用RB_1_0这样的符号标示。5.签出分布发布内容并修改提交。6.修改完成后,对系统进行健全性检查,运行自动构建。7.选择分发需要的文件,要使最后的软件是软件产品而不是开发项目。一般而言发布版本包含的内容有:版权登记文件,自读帮助文件,可执行代码,文档,库和第三方库。8.定义打包脚本。9.打包带有测试的可选发布文件。10.产生发布。11.生成发布文件。12.对发布文件进行打标。13.提交发布。

      下面我们就自动化过程构建这个自动发布过程的ant文件及bat脚本。

<?xml version="1.0" encoding="GBK-2312"?>
<project name="userview" default="release"basedir=".">
         <!-- 如果未通过bat传入参数则默认版本号为888 -->
         <propertyname="version" value="888"></property>
 
         <!-- 检查主线目录内容 -->
         <targetname="checktrunk">
                   <antantfile="cc-build.xml" target="build" />
         </target>
        
         <!-- 创建发布分支 -->
         <targetname="mkreleasebranches" depends="checktrunk">
                   <execexecutable="svn">
                            <arg
                                     line="copy-m 'release branch' svn://192.168.195.54/userview/trunksvn://192.168.195.54/userview/branches/RB_${version}" />
                   </exec>
         </target>
 
         <!-- 签出发布分支源代码 -->
         <targetname="checkoutbranches" depends="mkreleasebranches">
                   <deletedir="userview" />
                   <execexecutable="svn">
                            <arg
                                     line="checkout svn://192.168.195.54/userview/branches/RB_${version}RB_${version}" />
                   </exec>
         </target>
         <!--测试发布分支 -->
         <targetname="buildandtestreleasebranches"depends="checkoutbranches">
                   <antantfile="build.xml" target="test"dir="RB_${version}" />
         </target>
         <!-- 生成发布文件 -->
         <targetname="mkreleasefile"depends="buildandtestreleasebranches">
                   <zipdestfile="userview_${version}_${TODAY}.rar">
                            <filesetdir="RB_${version}/build">
                                     <excludename="test-results" />
                                     <excludename="test" />
                            </fileset>
                            <filesetdir="RB_${version}/vendor" />
                            <filesetfile="index.bat" />
                   </zip>
         </target>
         <!-- 测试分发文件内容 -->
         <targetname="testrelease" depends="mkreleasefile">
                   <!--
                            <execexecutable="java"> <arg line="-classpath
                            RB_1_1\build\prod;vendor/lib/sqljdbc4.jar;userview.view"/> </exec>
                            <java
                            classpath="RB_${version}\build\prod;RB_${version}\vendor\lib\sqljdbc4.jar"
                            classname="userview.view"></java>
                   -->
                   <!-- 解压生成的发布文件 -->
                   <unzipsrc="userview_${version}_${TODAY}.rar" dest="userview_${version}"/>
                   <!-- 执行命令检查程序运行情况 -->
                   <execexecutable="java">
                            <arg
                                     line="-classpathuserview_${version}\prod;userview_${version}\lib\sqljdbc4.jar;userview.view" />
                   </exec>
         </target>
         <!-- 标记发布 -->
         <targetname="markrelease" depends="testrelease">
                   <execexecutable="svn">
                            <arg
                                     line="copy-m 'tags ${version}' svn://192.168.195.54/userview/branches/RB_${version}svn://192.168.195.54/userview/tags/REL_${version}" />
                   </exec>
         </target>
         <!-- 分发呈送QA组 -->
         <targetname="sendtoQA" depends="markrelease">
                   <movefile="userview_${version}_${TODAY}.rar"tofile="../userview_${version}_${TODAY}.rar"/>
         </target>
         <!-- 清理发布环境 -->
         <targetname="release" depends="sendtoQA">
                   <deletedir="RB_${version}" />
                   <deletedir="userview_${version}" />
         </target>
 
         <tstamp>
                   <formatproperty="TODAY" pattern="yyyyMMdd" locale="en"/>
         </tstamp>
 
</project>

      定时脚本为:

ant -buildfile rb-build.xml -Dversion=%1

      其中%1为传入的版本号参数。调用定时脚本为:

rb.bat 1_2

      其中1_2为版本号。这样在userview的上级目录生成类似userview_1_3_20121202.rar的文件。

参考

1.      使用Ant和批处理备份数据

2.      JUnit下的测试和suite

3.      Ant结构化程序设计和WEB程序发布

4.      Ant的主要任务的语法

5.      Ant脚本的详细配置

6.      Subversion综述

7.      项目自动化之道-1.使用ant进行单步建构

8.      项目自动化之道-2.使用CruiseControl定时建构

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gongqingkui

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值