【IT168 技术文章】
江湖上口口相传CruiseControl很难配置,很不好用。
但其实,你很难说下面这段东西复杂吧,但这个config.xml 就是CC的全部配置了。
<cruisecontrol>
<project name="lh_erp" buildafterfailed="flase">
<modificationset >
<cvs localworkingcopy="E:/lh_erp/" />
</modificationset>
<schedule interval="1800">
<ant buildfile="E:/lh_erp/lh_erp.xml" target="all"/>
</schedule>
<log dir="logs/"/>
<publishers>
<currentbuildstatuspublisher file="logs/buildstatus.txt"/>
</publishers>
</project>
</cruisecontrol>
config.xml 简单解释
节点<project>: 表明CC支持多个Project。
节点<modificationset >:CC能在侦测到CVS有动静之后才进行动作。如果无论如何每天都要集成一次的,可以把cvs子节点换成<alwaysbuild/>
节点<schedule> : interval="1800"表示半小时醒来一次执行它的子节点
节点<ant> : CC主要靠Ant执行动作,除了指定build.xml文件和target,ant还有三个属性来进一步控制自己的执行时间。
time="1830" 表明每天晚上6点半进行一次持续集成。条件是 上一次醒来的时间<18:30<本次醒来的时间。
mutibale="5",醒来五次执行一次,适合有几个ant节点,有的醒来一次做一次,有的醒来几次才做一次。
day="Monday" 同理
<log>和<publishers>节点:由名字可知功用, CC还支持其他形式的通知比如email
运行cruisecontrol.bat
cruisecontrol.bat会找到你当前所在目录里的config.xml并执行它。CC里面特别用到的jar如statcvs.jar,需要在bat里面写好路径。
查看集成结果
在reporting/jsp/建一个override.properties,内容为
user.log.dir=E:/lh_erp/logs
cruise.build.artifacts.dir=E:/lh_erp/logs
user.build.status.file=currentbuildstatus.txt
然后build war获得war文件扔到tomcat里通过 http://localhost/cruisecontrol/buildresults/ 浏览
从此,我们有了持续集成。