修改CruiseControl的配置
在家无聊,看到CruiseControl里的东西就想整一下,一直以来只是抄袭了同事的脚本在这里跑,只能手动地去点击一下按钮才能激发,想着就不舒服。从网上搜了点资料看看,实在是找不到有用的,于是再回来看自带的帮助和自带的例子,偶然发现,虽然命令行中老是输出一堆一堆的内容,其实对于出错的情况还是解释得比较清楚的,尽管不详细。仔细调试配置脚本,终于可以定时轮循VSS中的文件并做出相应的响应了。其实非常简单,只是以前一直没有静下心来搞而已:
<listeners>
<currentbuildstatuslistener file="${ccworkspace}/logs/${project.name}/status.txt"/>
</listeners>
<bootstrappers>
<vssbootstrapper vsspath="${vsspath}" ssdir="${ssdir}" login="${username},${password}" serverpath="${serverpath}" localdirectory="${ccworkspace}/projects/${project.name}"/>
</bootstrappers>
<modificationset quietperiod="30">
<vss ssdir="${ssdir}" login="${username},${password}" vsspath="${vsspath}" serverpath="${serverpath}" dateformat="yy-MM-dd" timeformat="HH:mm"/>
</modificationset>
<schedule interval="600">
<ant antscript="${antpath}" antworkingdir="${ccworkspace}" buildfile="build.xml" target="wallpaperhelper_All"/>
</schedule>
各节属性的作用都可以查看CC帮助了解,只要把该填的都填好,就基本上没什么问题了。用VSS跟用SVN或CVS还是有一点区别的,网上很难找到用VSS的例子,好在也确实不复杂,呵呵。
解决了这个问题后,我就开始得寸进尺期望CC能在后台运行。CC自带的解决方案是用一个叫Jetty的应用程序服务器,然后通过JAVA来运行。从这里可以看出,应该是能用Tomcat之类的其它的应用程序服务器来运行CC的,而Tomcat又能跟Apache配接在一起用,所以我觉得大概这是最好的方案,不过就是对于几人几十人的小项目来说,似乎有点杀鸡用牛刀了。其实再看一下那个启动CC用的bat文件就能发现,只要预先设置好几个环境变量,然后就能在后台用JAVAW.EXE来启动CC了。这里还有一个问题是,CC启动时,会在当前目录下寻找config.xml文件,所以一定要把config.xml文件放在它找得到的地方,我的办法是给这个命令行建立一个快捷方式,然后把开始位置设到config.xml所在的目录下,把这个快捷方式放到开始菜单的启动文件夹中,就可以让CC随着系统而在后台一起启动了。但是,后台运行也有一个不好的地方,不能随时看到CC最新的运行状态,通过浏览器的信息总感觉有些许延迟。