基于 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 脚本来快速地搭建这样一种环境。
更多精彩
赞助商链接