CruiseControl 配置

上一篇 / 下一篇  2010-05-25 12:00:17 / 个人分类:CruiseControl

 

CruiseControl 的概念和好处,我就不在复诉,下面是我的配置环境与配置文件。

配置环境:

CruiseControl : cruisecontrol-bin-2.7.zip

Apache-Ant : 1.7.0

Junit : 4.0

JRE : 5.0_12

Eclipse :

在此环境中,要保持Ant与Junit的版本协调,最初使用Cruisecontrol-2.7随包发布的apache-ant-1.6.5进行单元测试时,会报 No tests found in .... ,Ant1.7是支持JUnit4的,所以将Ant升级为1.7.0的版本,问题解决。

1、设置环境变量

     由于使用ZIP的版本,所以需要设置 JAVA_HOME 的路径。注意由ANT的版本已升级为1.7.0,所以在config.xm中应该指定ant_home的路径。

2、CruiseControl 的config.xml

 

 1<?xml version='1.0' encoding='gb2312'?>
 2<cruisecontrol>
 3    <project name="projectName">
 4
 5        <!-- 用于处理一些项目有关的事件 -->
 6        <listeners>
 7            <!-- 用来访问项目当前创建的状态   file: 指定了状态文件的位置 -->
 8            <currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
 9        </listeners>
10        
11        <!-- 在 CC 进行创建之前运行,是创建前的准备工作 -->
12        <bootstrappers>
13            <!-- 从源码控制系统更新本地文件: cvsbootstrappers、vssbootstrappers、svnbootstrapper -->
14            <svnbootstrapper localWorkingCopy="projects/${project.name}" />
15        </bootstrappers>
16
17        <!-- 检查各个源码控制系统中是否发生变化;quietperiod: 单位为秒 设定等待的时间 -->
18        <!-- 第一次的取出工作为手动执行 -->
19        <modificationset quietperiod="600">
20            <svn localWorkingCopy="projects/${project.name}"/>
21        </modificationset>
22
23        <!-- 指定了构建的时间间隔 单位为秒-->
24        <schedule interval="60">
25            <ant anthome="apache-ant-1.7.0" buildfile="projects/${project.name}/build.xml"/>
26        </schedule>
27        
28        <!-- 指定项目日志保存的地点 -->
29        <log>
30            <!-- 通常是指定 CC 的合并日志的目录 -->
31            <merge dir="projects/${project.name}/test-reports"/>
32        </log>
33        
34        <!-- 在 build loop 结束之后运行,发布 build 的结果 -->
35        <publishers>
36            <!--onsuccess-->
37                <!--用于对创建过程中产生的人工制品进行发布-->
38                <!--artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/target/${project.name}.jar"/>
39            </onsuccess-->
40
41            <!--
42                mailhost=邮件主机
43                returnname=发件人
44                returnaddress=发件地址
                       defaultsuffix=默认邮件后缀
45            -->
46            <htmlemail
47                charset="UTF-8"
48                mailhost="smtp.163.com" 
49                defaultsuffix="@xxx.com"
50                username="xxx@163.com"
51                password="xxx"
52                returnname="CruiseControl"
53                returnaddress="xxx@163.com"
54                subjectprefix="构建日志"
55                xsldir="webapps/cruisecontrol/xsl"
56                css="webapps/cruisecontrol/css/cruisecontrol.css">
57                <always address="xxx@xxx.com.cn"/>
58                <failure address="xxx@xxx,yyy@yyy.com.cn"/>
59                
60            </htmlemail>
61
62        </publishers>
63
64    </project>
65</cruisecontrol>


2、build.xml的特性文件

 1
 2projcet.path=xxx
 3
 4projcet.name=xxx
 5
 6catalina.home=xxx
 7
 8catalina.port=xxx
 9
10catalina.username=xxx
11
12catalina.password=xxx


3、工程的build.xml

 

  1<?xml version="1.0" encoding="UTF-8" ?>
  2
  3<!-- Continuous Integration 工程名称 Gms 默认任务 CI -->
  4<project default="CI" name="xxx" basedir=".">
  5
  6    
  7    <!-- 特性文件 在特性文件中 注意路径的正反斜杠问题 -->
  8    <property file="build.properties"/>
  9    
 10    <!-- ================================ 工程参数 ================================ -->
 11    
 12    <!-- 工程中文名称 -->
 13    <property name="projectName_CN" value="xxx"/>
 14    <!-- 工程目录 -->
 15    <property name="projectFolder" value="${projcet.path}/${projcet.name}"/>
 16    
 17    <!-- 源程序目录 -->
 18    <property name="sourceFolder" value="${projectFolder}/src/main/java"/>
 19    <!-- 配置文件目录 -->
 20    <property name="configFolder" value="${projectFolder}/src/main/config"/>
 21    <!-- 测试程序目录 -->
 22    <property name="testFolder" value="${projectFolder}/src/test/java"/>
 23    <!-- lib目录 -->
 24    <property name="libFolder" value="${projectFolder}/WebRoot/WEB-INF/lib"/>
 25    <!-- 编译程序目录 -->
 26    <property name="classFolder" value="${projectFolder}/WebRoot/WEB-INF/classes"/>
 27
 28    <!-- 单元测试报告目录 -->
 29    <property name="reportFolder" value="${projectFolder}/test-reports"/>
 30    <!-- 单元测试报告文件名 -->
 31    <property name="reportFileName" value="junit-noframes.html"/>
 32    
 33    <!-- ================================ 发布设置 ================================ -->
 34    
 35    <!-- 生成war文件 -->
 36    <property name="warFile" value="${projectFolder}/${projcet.name}.war"/>
 37    <!-- web.xml文件 -->
 38    <property name="webFile" value="${projectFolder}/WebRoot/WEB-INF/web.xml"/>
 39    <!-- 生成war文件的基础路径 -->
 40    <property name="warSource" value="${projectFolder}/target/classes"/>
 41
 42    <!-- ================================ 路径设置 ================================ -->
 43    
 44    <!-- 编译过程中用到的路径 -->
 45    <path id="compilePath">
 46        <!-- 编译程序目录 -->
 47        <pathelement path="${classFolder}" />
 48        <!-- 编译时lib路径 -->
 49        <path refid="libPath" />
 50    </path>
 51
 52    <!-- 单元测试时用到的路径 -->
 53    <path id="jUnitPath">
 54        <!-- 编译程序目录 -->
 55        <pathelement path="${classFolder}" />
 56        <!-- 编译时lib路径 -->
 57        <path refid="libPath" />
 58    </path>
 59
 60    <!-- 编译时lib路径 -->
 61    <path id="libPath">
 62        <!-- lib目录 -->
 63        <fileset dir="${libFolder}">
 64            <include name="**/*.jar" />
 65        </fileset>
 66    </path>
 67    
 68    <!-- ================================ 持续集成 ================================ -->
 69    
 70    <!-- 集成流程 暂时没有加入 Test -->
 71    <target name="CI" depends="init,compile,test,makewar,deploy-catalina" description="持续集成"/>
 72
 73    <!-- 1.初始化目标目录, class ; report -->
 74    <target name="init" description="初始化">
 75        
 76        <echo>正在删除编译程序目录</echo>
 77        <delete dir="${classFolder}" />
 78        <echo>正在创建编译程序目录</echo>
 79        <mkdir dir="${classFolder}" />
 80        
 81        <echo>正在删除单元测试报告目录</echo>
 82        <delete dir="${reportFolder}" />
 83        <echo>正在创建单元测试报告目录</echo>
 84        <mkdir dir="${reportFolder}" />
 85    </target>
 86
 87    <!-- 2.编译程序生成目标类 -->
 88    <target name="compile" depends="init" description="编译">
 89        <echo>编译源程序</echo>
 90        <!-- classpathref="编译路径" destdir="${编译程序目录}" -->
 91        <javac classpathref="compilePath" fork="true" memorymaximumsize="128m"
 92               destdir="${classFolder}" debug="true" deprecation="false"
 93               failonerror="false" verbose

TAG:

 

评分:0

我来说两句

Open Toolbar