基于 Ant 搭建敏捷开发过程中的持续集成环境
2010-01-04 00:00:00 来源:WEB开发网对于测试环境和产品环境而言,获取产品包并自动的进行产品部署是两者共同的首要工作,而这个过程中所面临的主要问题通常涉及不同操作系统的脚本移植性问题。幸好,Ant 具备了良好的跨平台能力,我们不必为不同的部署环境(Windows 或 Linux)去编写不同的部署脚本,只需将精力集中于产品包的获取和针对不同应用服务器的部署即可,清单 3 展示了如何从 FTP 服务器获取产品包,并自动发布于 IBM WebSphere 应用服务器的过程。
清单 3. 获取产品包并自动部署<?xml version="1.0" encoding="UTF-8"?>
<project name="SampleProductEnv" basedir="." default="updateProduct">
<taskdef name="wsadmin" classname="com.ibm.websphere.ant.tasks.WsAdmin"/>
<taskdef name="wsStopServer" classname="com.ibm.websphere.ant.tasks.StopServer"/>
<taskdef name="wsStartServer"
classname="com.ibm.websphere.ant.tasks.StartServer"/>
<target name="getFromFTP" >
<ftp action="get" server="${FTPAddr}" userid="${FTPUsr}" password="${FTPPasswd}"
remotedir="${product_FTP}">
<fileset dir="${basedir}/FTPDownload">
<include name="production.*"/>
</fileset>
</ftp>
</target>
<target name="generateUpdatePack" depends="getFromFTP">
<unzip src="${basedir}/FTPDownload/Production.zip"
dest="${basedir}/Production">
<globmapper from="code_build" to="app1"/>
</unzip>
</target>
<target name="updateProduct">
<wsadmin script="${basedir}/updateApp1.py" user="${MMC_user_name}"
password="${MMC_user_password}" conntype="NONE" failonerror="yes">
<arg value="${update_files_location}/app1/WEB-INF/web.xml" />
</wsadmin>
<antcall target="stop-server" />
<copy todir="${product_Home}" overwrite="true">
<fileset dir="${update_files_location}/app1 ">
<exclude name="**/web.xml"/>
</fileset>
</copy>
<antcall target="start-server" />
</target>
<target name="start-server">
<wsStartServer server="server1" noWait="false" trace="true"
username="${MMC_user_name}" password="${MMC_user_password}" failonerror="yes">
</wsStartServer>
</target>
<target name="stop-server">
<wsStopServer server="server1" noWait="false" trace="true"
username="${MMC_user_name}" password="${MMC_user_password}" failonerror="yes">
</wsStopServer>
</target>
</project>
结束语
本文首先介绍了一种在敏捷开发环境中最基本的持续集成环境,然后结合作者自身实践,讲述了几种能够为持续集成提供重要支持和能力的 Ant 任务及概念,最后通过示例性 Ant 脚本片段展示如何使用 Ant 脚本来快速地搭建这样一种环境。
- ››基于JavaScript的网页版塔防游戏
- ››基于Android平台 QQ大战360手机游戏爆红
- ››基于Windows Azure的云计算应用设计
- ››基于AES算法实现对数据的加密
- ››基于SoPC目标板Flash编程设计的创建及应用
- ››基于SolidWarks齿轮机构的运动分析与仿真
- ››搭建DHCP服务器
- ››基于Windwos Server 2008故障转移群
- ››基于JavaScript的REST客户端框架
- ››基于JavaScript和CSS的Web图表框架横向对比
- ››基于JQuery地区三级联动列表
- ››基于GoogleMap,Mapabc,51ditu,VirtualEarth,Y...
更多精彩
赞助商链接