您的位置:首页 > 产品设计 > UI/UE

用SVN+cruisecontrol 搭建持续集成开发环境

2010-04-01 19:04 751 查看
最近因为项目的需要,需要搭建持续集成开发环境。简单的说,持续集成就是要干这么一件事:持续集成与SVN配合,开发人员将代码上传到SVN上指定的文件夹下,持续集成cruisecontrol(简称CC)会自动从SVN上checkout代码,自动进行编译链接,生成可执行文件,而PM(也就是实验室管我们的老师)则通过web前端登录到CC服务器,从而查看每个‘码农’的每天代码的更改情况。可以说,CC为一个软件项目的整合提供了一个很好的平台。

废话少说,开始搭CC(Linux下),首先需要SVN的支持,我们假设SVN已经搭好了,并且所有码农的代码放在http://192.168.0.2/SVN/SMSSystem这个文件夹下。首先保证已经预装了Apahe , JDK , ANT(ANT可以不用自己装,在cruisecontrol)的代码包中有ANT,只需修改环境变量即可,SVN的客户端(CC要与SVN配合使用)。

首先,下载CC的压缩包cruisecontrol-bin-2.8.3.zip,解压包

cd cruisecontrol-bin-2.8.3 进入目录, 修改config.xml文件,在我这个项目中,修改的结果如下:

<cruisecontrol>
    <project name="SMSSystem">   # 工程名

        <listeners>
            <currentbuildstatuslistener file="logs/${project.name}/status.txt"/>  # log信息
        </listeners>

        <bootstrappers>
            <svnbootstrapper localworkingcopy="projects/${project.name}"/>  #svn的地址
        </bootstrappers>

        <modificationset quietperiod="30">
            <svn localworkingcopy="projects/${project.name}"/>  #隔30秒查看SVN的修改情况
        </modificationset>

        <schedule interval="120">   # 隔120秒重新编译,但是SVN代码不变则不执行
            <ant anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml" target="make"/>
        </schedule>

        <log>
            <merge dir="projects/${project.name}/target/test-results"/>
        </log>

        <publishers>
            <onsuccess>
                <artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/target/${project.name}"/>
            </onsuccess>
        </publishers>

    </project>
</cruisecontrol>

 

接着,我们要手动将SVN checkout一次(第一次必须要手动来checkout,以后就不用了)。

cd project   #这个地方是放工程的地方

svn co http://192.168.0.2/SVN/SMSSystem 

接着在SMSSystem文件夹下加入以下的build.xml(我们的开发是Linux + GCC)

<project name="SMSSystem" default="all">
<target name="all" depends="clean, make"/>
<target name="make">
    <exec executable="make" failonerror="true" >
    </exec>
</target>

<target name="clean">
    <exec executable="make" failonerror="true" >
        <arg value="clean"/>
    </exec>
</target>
</project>

接着退到CC的主目录,执行./cruisecontrol.sh,CC服务就打开了,你可以通过web查看

http://192.168.0.3:8080/dashboard

 

几点说明:

1、所有的工程都要放在project这个文件夹下面

2、CC启动会去找config.xml ,启动后会通过ant命令去找每一个工程底下的build.xml

3、CC的安装不难,启动前在shell下键入javac , java , ant 都要保证成功,不能出现command not found

4、CC可以同时加入多个工程,只要保证每个工程底下有正确的build.xml,并且每个工程都配到config.xml里就可以了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  svn ant linux command file merge