技术开发 频道

一点不难配置的CruiseControl持续集成

【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/ 浏览

    从此,我们有了持续集成。

0