`

cruisecontrol 完美实现svn c++ cppunit的持续管理

阅读更多

经过三天的配置,终于把cruisecontrol 配置好了,其实要说配置好,第一天装上就可以用了,因为cc里面本来就有例子,可实现java+svn+junit的持续集成。但,我手上的项目是C++的,用的是cppunit,没办法,只得仔细看配置文档,上网查教程。也许你会问,为什么不用CCNET,CCNET本身就支持C++ CPPUNIT,原因很简单,其实我就是想挑战一下而已,呵呵!因为我相信,CC做了这么多年,不会是这么差劲,肯定有办法让他支持其它语言。

好了,闲话不多说,我一向写BLOG都是直奔主题的,这次说了么多,实在。。。。。。。。。

 

第一。下载CC cpptask.jar ant-contrib-1.0b3.jar就只需这几个东东哦。cpptask.jar也许你下不到,没关系,把压缩包下下来,然后用ANT编译一下,就会有cpptask.jar了。

第二。把cpptask.jar ant-contrib-1.0b3.jar 放到 cc里面的ant/lib目录下。

第三。cruisecontrol.bat里面加入

set EXTLIBDIR=%ANT_HOME%\lib
  %EXTLIBDIR%\ant-contrib-0.6.jar;%EXTLIBDIR%\cpptasks.jar;

      最后加入即可。

 

第四。下班了,明天再写!

第五。我又来上班啦,继续写。config.xml配置如下,和java项目的配置差不多。

  <project name="test">
    <listeners>
    
    </listeners>
    <bootstrappers>
      <antbootstrapper anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml"  />
    </bootstrappers>
    <modificationset quietperiod="30">
      <filesystem folder="projects/${project.name}" />
    </modificationset>
    <schedule interval="30">
      <ant anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml" />
    </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}.exe"/>
            </onsuccess>
    
    </publishers>
  </project>

 

第六。配置C++编译环境。在VC下有个

@set PATH=D:\Program Files\Microsoft Visual Studio 8\Common7\IDE;D:\Program Files\Microsoft Visual Studio 8\VC\BIN;D:\Program Files\Microsoft Visual Studio 8\Common7\Tools;D:\Program Files\Microsoft Visual Studio 8\Common7\Tools\bin;D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\bin;D:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\bin;c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;D:\Program Files\Microsoft Visual Studio 8\VC\VCPackages;%PATH%
@set INCLUDE=D:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\INCLUDE;D:\Program Files\Microsoft Visual Studio 8\VC\INCLUDE;D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\include;D:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\include;%INCLUDE%
@set LIB=D:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\LIB;D:\Program Files\Microsoft Visual Studio 8\VC\LIB;D:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\lib;D:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\lib;%LIB%
@set LIBPATH=c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727;D:\Program Files\Microsoft Visual Studio 8\VC\ATLMFC\LIB

把它加进环境变量里面去,当然你也可通过脚本的方式调用。

 

第七。在test项目里面加入build.xml

<project name="test" default="compile" xmlns:cpptasks="antlib:net.sf.antcontrib.cpptasks">
    <target name="compile">
        <exec   executable= "cmd.exe">
                    <arg   line= "/c   'D:/Program Files/CruiseControl/projects/test/test.bat'"/>
                </exec>

    </target>
</project>

第八。test.bat如下:

svn update
devenv test.sln /rebuild
cd debug
test.exe
说明一下,为什么要svn update,是因为,cc部署在服务器上,而程序员是从自己的PC上提交到SVN服务器,提交上去之后,并不能马上自动构建,而需要update到服务器上,然后从服务器的checkout目录构建。

 

第九。如果你发现CC并不自动构建你配置的项目,那么先看看CC的服务器有没有报什么错,我遇到一个问题就是,在CC第一次去构建项目时,就已经报错,所以CC怎么也不会显示已经构建过项目。以上的做法,已经能让CC编译C++了,但,还看不到想要的结果,CC显示的结果是从LOGS里面去读取出来的。因此在项目里面的CPPUNIT要求要把日志输出到CC/LOGS/TEST目录下去,还有,CC会自动读取最新时间的日志,所以把CPPUNIT输出的日志名字搞个很久以后的时间,这样就没有问题了,哈哈!

 

总结一下,我配置好这个东东大概花了三天的时间,很是想吐血,网上没有什么针对C++ CPPUNIT的文档,官网上也找不到,其实CC++编译什么语言没关系,它做的事就是检测SVN提交,然后调用ANT去编译,至于怎么编译是ANT的事,所以其实要做是让ANT能编译你的东东,然后把日志输出到logs/test目录下面去。

分享到:
评论

相关推荐

    CruiseControl+SVN+Maven+Tomcat持续集成环境搭建

    搭建CruiseControl+SVN+Maven+Tomcat持续集成环境,主要是为了实现代码的自动构建、测试和部署,从而提高开发效率,减少错误。整个过程涉及到多个工具的安装、配置和集成,确保每个环节都能正确工作,并通过权限管理...

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

    SVN+cruisecontrol 搭建持续集成开发环境 持续集成开发环境是软件开发过程中的一种实践,它能够自动地构建、测试和部署软件,提高开发效率和软件质量。SVN(Subversion)是一种版本控制系统,能够帮助开发团队管理...

    CruiseControl + ANT +SVN

    【CruiseControl + ANT + SVN】是一个集成开发环境(IDE)自动化构建和版本控制的解决方案。这个组合在软件开发过程中发挥着关键作用,确保代码的持续集成和版本管理。下面将详细阐述这三个组件以及它们如何协同工作...

    持续集成及CruiseControl技术交流

    主题:持续集成及CruiseControl技术交流 在提升软件质量、降低研发风险、拒绝浪费方面,处于敏捷实践领域的持续集成(Continuous Integration,CI)起到重要作用。持续集成能够解决研发工作中的80%任务(日常),...

    cruisecontrol_ant_svn持续集成

    cruisecontrol.war 文件,你可以直接将这个文件 COPY 到你的%TOMCAT_HOME%\webapps 目录下,不 过这种方式通常都会出错,前 面我们讲过CC的WEB组件要访问我们的项目build 的状态文件,而下载的 CC2.2 里面自带的 ...

    持续集成之CruiseControl.rb

    **持续集成之CruiseControl.rb** CruiseControl.rb是一款开源的持续集成工具,主要用于自动化构建、测试和部署软件项目。它是由ThoughtWorks公司开发的,是Cruise...对于Ruby开发者来说,它是实现持续集成的得力助手。

    cruisecontrol配置定时运行

    CruiseControl是一款持续集成工具,它能够自动化地构建、测试和部署软件项目,极大地提高了开发效率和产品质量。在本文中,我们将深入探讨如何配置CruiseControl以实现定时运行,确保项目始终保持最新状态。 首先,...

    cruisecontrol+maven2配置

    标题与描述概述的知识点主要涉及了使用CruiseControl与Maven2进行持续集成的配置...通过上述步骤,我们可以完成CruiseControl与Maven2的集成配置,实现自动化构建、测试和部署的持续集成流程,提高开发效率和软件质量。

    利用CruiseControl软件进行持续集成

    "利用CruiseControl软件进行持续集成" 在软件开发过程中,持续集成是一个非常重要的步骤,它可以帮助开发团队更好地合作和跟踪项目的进度。CruiseControl是一种流行的持续集成工具,能够自动化地构建、测试和部署...

    CruiseControl简介及使用举例

    总的来说,CruiseControl作为一个强大的持续集成工具,可以帮助团队有效地管理软件开发过程,确保项目的稳定性和代码的可靠性。它的易用性、灵活性和自动化特性使其成为许多企业首选的持续集成解决方案。正确配置和...

    cruisecontrol配置文件.rar

    CruiseControl 是一个开源的持续集成工具,用于自动化软件构建、测试和部署的过程。它通过监控版本控制系统中的变更,自动触发构建任务,及时发现并解决代码集成中的问题,从而提高开发团队的效率和软件质量。本...

    持续集成实践之CruiseControl

    **持续集成实践之CruiseControl** 在软件开发领域,持续集成(Continuous Integration,简称CI)是一种重要...通过阅读这份文档,开发者可以获得更深入的指导,更好地运用CruiseControl实现高效且稳定的持续集成实践。

    基于 CruiseControl 和 Rational 统一变更管理实现的软件开发中的自动化持续构建.mht

    综上所述,实现基于CruiseControl和Rational统一变更管理的自动化持续构建是一个高效而现代的软件开发实践,它对于提高软件项目的质量和迭代速度具有显著的效果。通过深入理解这两个工具的功能和集成方式,开发团队...

    [CruiseControl]binary安装和启动

    CruiseControl 是一个持续集成工具,用于自动化构建过程并提供实时反馈,帮助开发团队尽早发现问题。它支持多种构建工具如 Ant 和 Maven,并且可以与各种版本控制系统(如 CVS, Subversion 等)集成。 #### 二、...

    CruiseControl学习教程.pdf

    CruiseControl是一款持续集成工具,它能够自动化软件构建、测试和发布的过程,是开发者进行敏捷开发和持续集成的重要工具。本教程将详细讲解CruiseControl的学习与实践。 **第一章 CruiseControl实践** 1.1 Cruise...

    CruiseControl使用指南.rar

    CruiseControl是一款开源的持续集成工具,用于自动化软件开发过程中的构建、测试和部署任务。这份"CruiseControl使用指南.rar"包含了一系列关于如何有效利用CruiseControl进行持续集成的资源,包括文章、教程和示例...

    CruiseControl入门

    正确地配置和使用CruiseControl,可以帮助团队实现持续、快速的反馈循环,及时发现并解决问题,确保项目的稳定和健康发展。通过学习和实践CruiseControl,开发者可以更好地掌握持续集成的理念和技术,从而提升整个...

Global site tag (gtag.js) - Google Analytics