`
zzkathy
  • 浏览: 43416 次
  • 性别: Icon_minigender_2
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

CruiseControl读书笔记(一)

阅读更多
CruiseControl:简称CC,持续集成工具,主要提供了基于版本管理工具(如CVS)感知变化或每天定时的持续集成,并提供持续集成报告、Email、Jabber等等方式通知相关负责人,其要求是需要进行日构建的项目已编写好全自动的项目编译脚本(可基于Maven或Ant)。

在这里以一个项目来简要的说说cc的使用,通常项目对于日构建的类型的需求分为两种:
1、每天的定时自动集成。
2、感知版本管理工具中的变化而进行自动集成。

项目对于日构建的目标通常为:
1、感知版本管理工具的变化,如发现有变化,则进行集成。
2、调用项目编译脚本进行项目集成。
3、合并项目编译脚本产生的单元测试、功能测试的日志。
4、将集成报告发布至网站中。
5、将集成的结果以邮件、jabber等等方式通知相应的负责人。

Configuration Reference(config.xml文件)
<cruisecontrol>
   <property/>
   <include.projects/>
   <system>
      <configuration>
         <threads/>
      </configuration>
   </system>
   <plugin/>
   <project>
      <property/>
      <plugin/>
      <dateformat/>
      <labelincrementer/>
      <listeners>
         <cmsynergysessionmonitor/>
         <currentbuildstatusftplistener/>
         <currentbuildstatuslistener/>
         <currentbuildstatuspagelistener/>
         <lockfilelistener/>
      </listeners>
      <bootstrappers>
         <accurevbootstrapper/>
         <alienbrainbootstrapper/>
         <antbootstrapper/>
         <clearcasebootstrapper/>
         <clearcaseviewstrapper/>
         <cmsynergybootstrapper/>
         <currentbuildstatusbootstrapper/>
         <currentbuildstatusftpbootstrapper/>
         <cvsbootstrapper/>
         <execbootstrapper/>
         <harvestbootstrapper/>
         <lockfilebootstrapper/>
         <p4bootstrapper/>
         <plasticscmbootstrapper/>
         <snapshotcmbootstrapper/>
         <starteambootstrapper/>
         <surroundbootstrapper/>
         <svnbootstrapper/>
         <tfsbootstrapper/>
         <vssbootstrapper/>
      </bootstrappers>
      <modificationset>
         <accurev>
         <alienbrain/>
         <alwaysbuild/>
         <buildstatus/>
         <clearcase/>
         <cmsynergy/>
         <compound>
            <targets/>
            <triggers/>
         </compound>
         <cvs/>
         <darcs/>
         <filesystem/>
         <forceonly/>
         <harvest/>
         <httpfile/>
         <mavensnapshotdependency/>
         <maven2snapshotdependency/>
         <mks/>
         <p4/>
         <plasticscm/>
         <pvcs/>
         <snapshotcm/>
         <starteam/>
         <surround/>
         <svn/>
         <tfs/>
         <timebuild>
         <ucm>
         <veto/>
         <vss/>
         <vssjournal/>
      </modificationset>
      <schedule>
         <ant/>
         <maven/>
         <maven2/>
         <pause/>
         <nant/>
         <phing/>
         <exec/>
         <composite/>
      </schedule>
      <log>
         <merge/>
  <gzip/>
  <delete/>
      </log>
      <publishers>
         <antpublisher/>
         <artifactspublisher/>
         <clearcasebaselinepublisher/>
         <cmsynergybaselinepublisher/>
         <cmsynergytaskpublisher/>
         <compoundpublisher/>
         <currentbuildstatuspublisher/>
         <currentbuildstatusftppublisher/>
         <email/>
         <execute/>
         <ftppublisher/>
         <htmlemail/>
         <jabber/>
         <onfailure/>
         <onsuccess/>
         <rss/>
         <sametimeannouncement/>
         <scp/>
         <sfeedocman/>
         <sfeefrs/>
         <sfeetracker/>
         <socket/>
         <weblog>
         <x10/>
         <xsltlogpublisher/>
         <yahoopublisher/>
      </publishers>
   </project>
</cruisecontrol>

示例:
<cruisecontrol>
  <project name="hello">
   <listeners>
     <currentbuildstatuslistener file="logs/hello/status.txt" />
   </listeners>

   <!-- 启动任务Plugin的容器,用于定义构建任务启动前需要执行的任务 -->
   <bootstrappers>
     <cvsbootstrapper localWorkingCopy="projects/hello" />
   </bootstrappers>

   <!-- 用于告诉CruiseControl是否需要构建项目,即配置管理库的代码是否存在更新,如果更新则自动执行下面的build.xml。属性requiremodification告诉CruiseControl,在配置管理库没有代码更新的情况下,是否需要构建。缺省为"true",即没有更新则无须进行构建;属性quietperiod告诉CruiseControl,最新一次代码提交后CruiseControl需要等待的时间(秒),用于防止CruiseControl在开发人员提交代码时进行项目构建,缺省为"60"秒。 -->
   <modificationset quietperiod="30" > 
     <cvs localWorkingCopy="projects/hello"/>
     <cvs localWorkingCopy="projects/hello/main/src/java/com/test/qik"/>
   </modificationset>

   <!-- 每隔多长时间(秒)启动一次构建任务。可选的属性interval,用于定义以秒为单位的时间间隔,缺省为"300"秒。 -->
   <schedule interval="30" >
     <ant anthome="apache-ant-1.6.3"
       buildfile="projects/hello/build.xml"
       target="CI"/><!-- 构建时执行的build.xml -->
   </schedule>

   <!-- 设定CruiseControl日志文件的存放目录 -->
   <log>
    <merge dir="projects/hello/test-reports"/>
   </log>

   <!-- 指定构建任务结束后,CruiseControl如何发布项目构建结果。项目构建结果的发布方式可以是Email,网页,复制代码库到指定的目录,或是发布代码库到FTP服务器等等。 -->
   <publishers>
    <artifactspublisher dest="artifacts" file="projects/hello/target/hello.jar"/>
   </publishers><!-- 发布jar包的位置,我都是在build.xml中将jar包打好放在这个位置 -->
  </project>
</cruisecontrol>

参考网文:CruiseContol:持续集成工具(虽然原有的版本比较老了,但是参考一下也是很不错的~~)

 
分享到:
评论

相关推荐

    cruisecontrol配置定时运行

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

    CruiseControl笔记

    ### CruiseControl.net 配置详解 #### 一、CruiseControl.net简介 CruiseControl.net是一种流行的持续集成(CI)工具,它...此外,为了确保配置正确无误,建议仔细阅读CruiseControl.net的官方文档,并进行适当测试。

    CruiseControl简介及使用举例

    CruiseControl是一款持续集成工具,它能够自动化地执行软件项目的构建、测试和部署流程,以确保代码的质量和项目的稳定性。本篇文章将详细介绍CruiseControl的基本概念、安装过程、配置方法以及一个简单的使用示例。...

    [CruiseControl]binary安装和启动

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

    cruisecontrol配置文件.rar

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

    持续集成之CruiseControl.rb

    CruiseControl.rb是一款开源的持续集成工具,主要用于自动化构建、测试和部署软件项目。它是由ThoughtWorks公司开发的,是CruiseControl.NET的Ruby版本,因此在Ruby社区中被广泛应用。CruiseControl.rb的核心理念是...

    cruisecontrol+maven2配置

    CruiseControl是一个开源的持续集成工具,能够监控源代码仓库的变动,并自动触发构建和测试过程。CruiseControl版本2.5提供了丰富的特性,支持多种构建工具和测试框架。 - **目录结构**:CruiseControl的工作目录...

    持续集成及CruiseControl技术交流

    CruiseControl是一著名的CI服务器。本次交流会从零介绍它的使用,并附带大量的Demo演示。 注意,持续集成本身也是一持续改进的过程。如何逐渐提升可回归性、敏捷性,这是一个永恒的话题。 适合群体 具有一定的软件...

    CruiseControl.NET

    CruiseControl.NET 是 .NET...CruiseControl是一个针对持续构建程序(项目持续集成)的框架,它包括一个email通知的插件,Ant和各种各样的CVS工具。CruiseControl提供了一个Web接口, 可随时查看当前的编译状况和历史状况。

    CruiseControl使用指南.rar

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

    利用CruiseControl软件进行持续集成

    CruiseControl是一种流行的持续集成工具,能够自动化地构建、测试和部署软件项目。下面是CruiseControl的知识点总结: 1.认识CruiseControl CruiseControl是一种持续集成框架,提供了邮件通知、ANT和各种源码控制...

    CruiseControl-2.8.4.exe

    CruiseControl-2.8.4.exe

    cruisecontrol简介

    cruisecontrol简介

    CruiseControl使用总结

    CruiseControl 是一个开源的持续集成工具,主要用于自动化软件构建、测试和部署过程。它的核心理念是通过频繁地构建项目,及时发现并解决代码中的问题,从而提高软件开发效率和质量。这篇博文将对CruiseControl进行...

    CruiseControl学习教程.pdf

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

    CruiseControl.NET-CCTray-1.8.4.0

    CruiseControl.NET-CCTray-1.8.4.0-Setup.exe

    CruiseControl.NET-1.4.4-Setup.exe

    CruiseControl.NET-1.4.4-Setup.exe

Global site tag (gtag.js) - Google Analytics