`

CruiseControl使用笔记——04.config.xml

阅读更多

--------------------------------------------------------------------------------------------------------------

官方文档: http://cruisecontrol.sourceforge.net/main/configxml.html

其他参考: http://blog.csdn.net/tony1130/archive/2008/01/14/2043646.aspx

--------------------------------------------------------------------------------------------------------------

 

config.xml 的基本内容如下:

<cruisecontrol>
  <dashboard />
  <project name="demo1">
    <!--省略-->  
  </project>
  <project name="demo2">
    <!--省略-->  
  </project>
</cruisecontrol>

<cruisecontrol> 为 root 元素,其子元素 <project> 即为纳入CI的项目的配置段,该元素的约束为 1..* , 且必须有 name 属性。

 

1. <project> 子元素列表如下:

元素 约束 说明
<listeners> 0 .. 1 监听项目状态的变化,如building、passed等
<bootstrappers> 0 .. 1 配置服务启动时该项目执行的操作
<modificationset> 1 配置检查代码是否修改的目录
<schedule> 1 配置构建计划任务
<log> 0 .. 1 配置构建日志
<publishers> 0 .. 1 配置发布相关信息
<plugin> 0 .. * 配置其他插件

 

 

2. <project> 配置片段如下:

<project name="demo" requiredModifaction="false"> <!--requiredModifaction属性设置为false,表示无论项目代码是否修改都将会进行构建工作,该属性默认为true,表示只有当项目代码改变时才会执行构建-->
    <bootstrappers>
      <svnbootstrapper LocalWorkingCopy="..." /> <!--表示在启动时进行一次代码检出工作-->
    </bootstrappers>
   
    <modificationset> <!--可以配置属性quietperiod,用于监听在quietperiod秒内,Repository是否变化,不配置则为默认值60-->
      <!--svn元素表示代码从svn获取,还可以用git、cvs、vss等元素-->
      <svn RepositoryLocation="..." /> <!--RepositoryLocation 和 LocalWorkingCopy 属性2选1,前者表示仓库路径,后者表示本地路径-->
    </modificationset>
   
    <schedule> <!--可以配置属性interval,用于每隔interval秒,CruiseControl去检查并计划一次构建,不配置则为默认值300-->
      <!--maven2元素表示构建代码工具为maven2,还可以用ant、maven等元素-->
      <maven2 MvnHome="...\apache-maven-2.0.9" PomFile="...\pom.xml" Goal="package -DskipTests" /> <!--mvnscript 和 MvnHome 属性2选1,前者配置 mvn.bat 或 mvn.sh 的路径,后者配置 maven HOME 路径-->
      <!--PomFile、Goal也是必须属性,前者用于指定pom文件路径,后者用于指定构建目标(支持maven的命令行语句)-->
    </schedule>
   
    <log> <!--构建的日志文件,默认放在 projects/${project.name} 目录下-->
      <merge dir="projects/${project.name}/target/test-results"/> <!--将Build中生成的结果合并-->
    </log>

    <publishers>
      <!--onsuccess用于配置在构建成功的情况下发布哪些内容-->
      <onsuccess>
        <artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/target/${project.name}.jar" />
      </onsuccess>

      <!--email用于配置将构建结果以邮件形式通知相关人员,还可以用htmlemail,htmlemail配置基本和email一致-->
      <email BuildResultsURL="http://localhost:8080/dashboard/tab/build/detail/demo" MailHost="..." ReturnAddress="test@msn.com">
         <always address="test@msn.com" /> <!--每次构建后均发邮件至该address-->
      </email>
    </publishers>
 </project>

  

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics