`

一些关于cruise control的笔记

阅读更多

cruiseControl learning
最近看了些关于持续构建的内容,才知道差了好多,下面是自己的一些记录,可能比较乱,而且也不全是关于cruiseControl的, 希望对大家有用

...........................
一个 continuous integration 工具,能团队进行敏捷开发,每过一段时间来进行集成,以便随时能发现引入的错误。当build失败后,将会通知提交者,使其能够更改代码。

cruiseControl(CC)的配置是围绕六个插件来展开的。

在提交之后,build失败了,如果不希望在再次提交代码之前重复的构建,可以有如下设置  <project name="integration" buildafterfailed="false">
----


1. Bootstrapper: cc创建之前运行,是创建前的准备工作 ....Bootstrappers are run before a build takes place
<bootstrappers> 
  <currentbuildstatusbootstrapper> 指定了状态文件的位置,主要是用来访问项目当前创建的状态
  <cvsbootstrappers> 可以是其他的源码控制系统,.....就是为从源码控制系统更新ant 的 buildfile 文件而设计的.....
  因为我们每次项目的创建都应该基于最新的代码,因此在创建之前就要获得最新的项目文件, 如果你使用的是ant, 这个工作是由ant 的buildfile来完成的。


2. SourceControl:访问源码控制系统,查看源码自上次build之后是否被修改。并据此决定是否需要进行下一次Build
<modificationset>  ,用于检查各个源码控制系统中是否发生变化,<schedule>会用到这里面的配置信息,如果检测到变化,会触发创建过程。



3. Builder:对项目进行创建,(包括对项目源码的的编译,测试,打包)
<schedule>  定时驱动<modificationset>,如果检测到变化,就执行所指定的builder 的任务。
当<modificationset>检测到修改时,如果没有调用build,下次也不会调用build,因为下次没有检测到失败。
但是build失败时,会一直要重新构建,直到构建成功。................??????????
因此build失败后,再此成功时,至少有两次被修改了,即modifications 为2

----------------------------------------------------------------
<schedule interval="60">
      <ant anthome="apache-ant-1.7.0" buildfile="cc-build.xml" saveLogDir="projects/${project.name}" antworkingdir="projects/${project.name}"
target="build" />
</schedule> 
当ant节点的antworkingdir属性设定之后,buildfile的起始位置将是  antworkingdir的位置,切记。(ant应用中)ant调用其他文件时,好像也是样的吧,需要查查
-------------------------------------------------------------


4. LabelIncrementer:对源码打标签,自动增加标签的编号

5. Publisher:发布创建的结果,可以通过email的方式通知开发人员()。。。。


IRCPublisher   将结果发入一irc服务器,需要一个 ircPublicsher插件, http://confluence.public.thoughtworks.org/display/CC/IRCPublisher
--------------------------------
当提交的人提交的内容导致了错误,将发送错误消息给他,配置如下:需要注意的一点是,如果cvs用户名是"Paul wei"形式,用户名之间有空格的,CC只提取前面一部分,作为用户名,所以需要加个<map alias="Paul" address="**@**"
/>
    <publishers>
      <onsuccess>
        <artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/target/${project.name}.jar" />
      </onsuccess>
   <currentbuildstatuspublisher file="logs/${project.name}/status.txt" />
     <email mailhost="smtp.host"
        returnaddress="admin@smtp.host"
        skipusers="false"
        reportsuccess="fixes"
        subjectprefix="[CruiseControl]"
        buildresultsurl="http://192.168.0.15:8080/buildresults/integration"
    >
    <map alias="Paul" address="paul@smtp.host" /> 
             </email>
    </publishers>

------------------------------------
6. Listener:用于处理一些项目有关的事件  ???



============================
其他的一些问题,

1.当报下面的错误时: 即ant logfile找不到,
  - exception attempting build in project integration
net.sourceforge.cruisecontrol.CruiseControlException: ant logfile **\log.xml is empty. Your build probably failed. Check your CruiseControl logs.

请往这句话的上面查看,很可能是其他地方出错了,比如构建文件找不到。下面是我曾遇到过的一种情况
2008-04-11 10:21:22,091 [Thread-8 ] INFO  Project          - Project integration:  now building
2008-04-11 10:21:22,091 [Thread-8 ] INFO  ProjectController - integration Controller: build progress event: now building
2008-04-11 10:21:22,857 [Thread-16] INFO  ScriptRunner     - Buildfile: projects\integration\cc-build.xml does not exist!
2008-04-11 10:21:22,889 [Thread-15] WARN  ScriptRunner     - Build failed
下面这个blog是另一种情况,内存不够
http://www.bxm.at/blogs/java/2007/08/19/cruisecontrolexception_ant_logfile_does_
........

2. ant 的cvs如果要执行 add 或者 update等命令时,需要相对路径,绝对路径时会出错。
<cvs cvsroot="${cvsroot}" command="update ../ab/ch.txt" />

......

----------------------------------------
从java development with ant中一些关于cruisecontrol的tips

? CruiseControl recommends that you use Jikes instead of javac because it is
faster and leaks less memory.
? Likewise, if you do use the javac compiler or another big Java program, set
fork="true".
? Get a mobile phone with SMS messaging and set up an email alias, and then
you can get paged when things go wrong—and when they start working again.

分享到:
评论

相关推荐

    CruiseControl笔记

    ### CruiseControl.net 配置详解 #### 一、CruiseControl.net简介 CruiseControl.net是一种流行的持续集成(CI)工具,它可以帮助软件团队自动构建、测试和部署代码,从而提高开发效率和软件质量。本篇文章将围绕...

    CruiseControl简介及使用举例

    首次运行CruiseControl时,可能会遇到一些默认配置问题,例如默认使用svn,而实际环境中可能使用的是CVS。此时,你需要根据实际情况修改`config.xml`文件,以适应你的源代码管理系统。在命令行中执行`cruisecontrol....

    cruisecontrol配置定时运行

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

    [CruiseControl]binary安装和启动

    ### [CruiseControl] Binary安装与启动指南 #### 一、CruiseControl简介 CruiseControl 是一个持续集成工具,用于自动化构建过程并提供实时反馈,帮助开发团队尽早发现问题。它支持多种构建工具如 Ant 和 Maven,...

    cruisecontrol配置文件.rar

    本压缩包“cruisecontrol配置文件.rar”包含了一些关键文件,它们是CruiseControl配置和运行的核心部分。 `main.jsp` 是CruiseControl Web界面的一个页面,用户可以通过这个页面查看构建状态、历史记录以及错误报告...

    持续集成之CruiseControl.rb

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

    cruisecontrol+maven2配置

    标题与描述概述的知识点主要涉及了使用CruiseControl与Maven2进行持续集成的配置流程。这是一项在软件开发过程中非常关键的技术实践,它能够自动检测代码库中的更新,并自动执行构建、测试以及部署等任务,从而确保...

    持续集成及CruiseControl技术交流

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

    CruiseControl使用指南.rar

    这份"CruiseControl使用指南.rar"包含了一系列关于如何有效利用CruiseControl进行持续集成的资源,包括文章、教程和示例。 1. **CruiseControl简单使用介绍**:这部分可能涵盖了CruiseControl的基本操作,如安装、...

    CruiseControl.NET

    CruiseControl.NET 是 .NET 平台下的持续集成工具,CruiseControl (Java) 的 .NET 移植版本。CruiseControl是一个针对持续构建程序(项目持续集成)的框架,它包括一个email通知的插件,Ant和各种各样的CVS工具。Cruise...

    CruiseControl-2.8.4.exe

    CruiseControl-2.8.4.exe

    cruisecontrol简介

    cruisecontrol简介

    利用CruiseControl软件进行持续集成

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

    CruiseControl使用总结

    关于“源码”标签,CruiseControl支持多种版本控制系统,如CVS、Subversion、Git等,它能与这些系统无缝协作,自动获取最新的代码变更。同时,CruiseControl也能与构建管理系统如Maven或Gradle协同工作,利用它们...

    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

    CruiseControl

    - **CruiseControl2.doc**:可能是关于CruiseControl的进阶使用,可能涉及高级功能、插件的详细用法,以及解决常见问题的技巧。 - **CruiseControl3.doc**:可能涵盖了CruiseControl与其他工具的集成,如Jenkins、...

    CruiseControl学习教程.pdf

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

Global site tag (gtag.js) - Google Analytics