CruiseControl于ant实现自动化

最近,因为领导需要看项目进展,所以搞了一台服务器,定时从Visual SourceSafe上拿最新的版本,编译并发布到tomcat下。

刚开始时,以为同时专门定期去做这件事情,但是总觉得不好。就了解了一些关于项目管理的东西。

现在用到的最多的就是ant了。这个是apache的一个开源项目,通过xml的配置来实现编译,打包,发布等等强大功能。经过几天了解,觉得ant确实很强大。

下载ant,现在最新版是1.7.0。配置环境变量ANT_HOME.在cmd中 ant version 看到ant的版本信息,说明配置成功。

通过编写ant脚本,可以实现从visual sourcesafe上拿到最新的源代码(ant于visual sourcesafe介绍部分配置),并且编译,打成war包发布到%tomcat_home%/webapps目录下,并启动tomcat。

因为需要做到定时执行的自动化,所以第一就想到了windows的计划任务,写了一个简单的批处理文件:

net stop tomcat5 停掉tomcat服务。

cd \

cd projects

ant 因为xml是默认文件名build,所以不需要指定buildfile。

net start tomcat5 打开tomcat服务。

虽然这样是可以,但是因为计划任务的最小单位是1天。不太能满足我们的需求。

所以就找到了CruiseControl,这个是工具比较简单,类似于ant,会自动根据配置的project去执行project的ant build.xml配置文件。并且可以设置一个schedule,最小时间单位为300秒。并且可以结合visual sourcesafe ,cvs等版本控制工具。

CruiseControl config.xml配置:

<?xml version="1.0" encoding="UTF-8"?> <cruisecontrol>  <project name="rsfwpt">   <property environment="env" />   <property name="ant.home" value="${env.ANT_HOME}"/>         <listeners>             <currentbuildstatuslistener file="logs/${project.name}/status.txt"/>         </listeners>         <bootstrappers>             <antbootstrapper anthome="${ant.home}" buildfile="projects/${project.name}/build.xml" target="all" />         </bootstrappers>

        <modificationset quietperiod="30">             <!-- touch any file in connectfour project to trigger a build -->             <filesystem folder="projects/${project.name}"/>         </modificationset>

        <schedule interval="300">             <ant anthome="${ant.home}" buildfile="projects/${project.name}/build.xml"/>         </schedule>     </project> </cruisecontrol>

比较简单吧,因为ant已经配置了vss,所以在cruisecontrol中就不需要额外的配置vss。现在所有的东西都OK了。

get最新源代码、编译、打war包、发布、启动服务器等动作一气呵成,呵呵。太爽了。

你可能感兴趣的:(tomcat,xml,ant,配置管理,vss)