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.net 配置详解 #### 一、CruiseControl.net简介 CruiseControl.net是一种流行的持续集成(CI)工具,它...此外,为了确保配置正确无误,建议仔细阅读CruiseControl.net的官方文档,并进行适当测试。
CruiseControl是一款持续集成工具,它能够自动化地执行软件项目的构建、测试和部署流程,以确保代码的质量和项目的稳定性。本篇文章将详细介绍CruiseControl的基本概念、安装过程、配置方法以及一个简单的使用示例。...
#### 一、CruiseControl简介 CruiseControl 是一个持续集成工具,用于自动化构建过程并提供实时反馈,帮助开发团队尽早发现问题。它支持多种构建工具如 Ant 和 Maven,并且可以与各种版本控制系统(如 CVS, ...
CruiseControl 是一个开源的持续集成工具,用于自动化软件构建、测试和部署的过程。它通过监控版本控制系统中的变更,自动触发构建任务,及时发现并解决代码集成中的问题,从而提高开发团队的效率和软件质量。本...
CruiseControl.rb是一款开源的持续集成工具,主要用于自动化构建、测试和部署软件项目。它是由ThoughtWorks公司开发的,是CruiseControl.NET的Ruby版本,因此在Ruby社区中被广泛应用。CruiseControl.rb的核心理念是...
CruiseControl是一个开源的持续集成工具,能够监控源代码仓库的变动,并自动触发构建和测试过程。CruiseControl版本2.5提供了丰富的特性,支持多种构建工具和测试框架。 - **目录结构**:CruiseControl的工作目录...
CruiseControl是一著名的CI服务器。本次交流会从零介绍它的使用,并附带大量的Demo演示。 注意,持续集成本身也是一持续改进的过程。如何逐渐提升可回归性、敏捷性,这是一个永恒的话题。 适合群体 具有一定的软件...
CruiseControl.NET 是 .NET...CruiseControl是一个针对持续构建程序(项目持续集成)的框架,它包括一个email通知的插件,Ant和各种各样的CVS工具。CruiseControl提供了一个Web接口, 可随时查看当前的编译状况和历史状况。
CruiseControl是一款开源的持续集成工具,用于自动化软件开发过程中的构建、测试和部署任务。这份"CruiseControl使用指南.rar"包含了一系列关于如何有效利用CruiseControl进行持续集成的资源,包括文章、教程和示例...
CruiseControl是一种流行的持续集成工具,能够自动化地构建、测试和部署软件项目。下面是CruiseControl的知识点总结: 1.认识CruiseControl CruiseControl是一种持续集成框架,提供了邮件通知、ANT和各种源码控制...
CruiseControl-2.8.4.exe
cruisecontrol简介
CruiseControl 是一个开源的持续集成工具,主要用于自动化软件构建、测试和部署过程。它的核心理念是通过频繁地构建项目,及时发现并解决代码中的问题,从而提高软件开发效率和质量。这篇博文将对CruiseControl进行...
CruiseControl是一款持续集成工具,它能够自动化软件构建、测试和发布的过程,是开发者进行敏捷开发和持续集成的重要工具。本教程将详细讲解CruiseControl的学习与实践。 **第一章 CruiseControl实践** 1.1 Cruise...
CruiseControl.NET-CCTray-1.8.4.0-Setup.exe
CruiseControl.NET-1.4.4-Setup.exe