shnulaa

Never deter till tomorrow that which you can do today
posts - 15, comments - 0, trackbacks - 0, articles - 2
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

关于持续集成的问题

Posted on 2010-09-28 18:44 shnulaa 阅读(267) 评论(0)  编辑  收藏 所属分类: java

什么是持续集成(Continuous Integration)

持续集成(CI)是一种实践,可以让团队在持续的基础 上收到反馈并进行改进,不必等到开发周期后期才寻找和修复缺陷。通俗一点儿说,就是指对于开发人员的每一次代码提交,都自动地把Repository中所有代码Check out到一个空目录,并且自动运行所有Test Case。如果成功则接受这次提交,否则告诉所有人,这是一个失败的Revision。

1. 使用工具CruiseControl
下载地址 http://cruisecontrol.sourceforge.net/download.html 下载后解压到目录

2. 使用svn下载项目到CruiseControl的projects目录下(linux 使用svn命令checkout)

3. 修改CruiseControl根目录下的config.xml (CruiseControl+maven2+SVN)


 1<?xml version="1.0" encoding="UTF-8"?>
 2<cruisecontrol>
 3  <property name="cruisedir" value="/root/tools/cruisecontrol-bin-2.8.3" />
 4  <property name="logdir" value="${cruisedir}/logs" />
 5  <property name="checkoutdir" value="${cruisedir}/projects" />
 6  <property name="artifactdir" value="${cruisedir}/artifacts" />
 7  <!-- 这里的20100609MatchingManagerFromShanghai就是svn checkout的项目目录名称  -->
 8  <project name="20100609MatchingManagerFromShanghai">
 9    <bootstrappers>
10      <svnbootstrapper localWorkingCopy="${checkoutdir}/${project.name}" />
11    </bootstrappers>
12    <modificationset quietperiod="30">
13      <svn localWorkingCopy="${checkoutdir}/${project.name}" />
14    </modificationset>
15    <!-- 每隔300秒做一次maven 的 clean package ,这里的300秒可以任意改动-->
16    <schedule interval="300">
17      <!-- 使用maven来进行clean package, 需要指定maven目录和setting目录 -->
18      <maven2 mvnScript="/root/tools/apache-maven-2.2.0/bin/mvn" pomFile="${checkoutdir}/${project.name}/pom.xml" goal="clean package" settingsFile="/root/tools/apache-maven-2.2.0/conf/settings.xml" />
19    </schedule>
20    <log>
21      <merge dir="projects/${project.name}/target/test-results" />
22    </log>
23    <publishers>
24       <!-- 可以配置邮件通知-->
25      <email mailhost="smtp.cs-corpmail.cn" returnaddress="User@sh-db.com.cn" skipusers="false" reportsuccess="always" subjectprefix="[CruiseControl]" buildresultsurl="http://192.168.1.10:8080/cruisecontrol/buildresults/${project.name}" spamwhilebroken="true" username="User@sh-db.com.cn" password="User1234">
26        <failure address="User@sh-db.com.cn" />
27          <success address="User@sh-db.com.cn" />
28      </email>
29    </publishers>
30    <listeners />
31  </project>
32</cruisecontrol>
33

4. 启动CruiseControl根目录下的cruisecontrol.bat(linux下为cruisecontrol.sh)

5. 可以打开http://192.168.1.10:8080/cruisecontrol/来进行配置


只有注册用户登录后才能发表评论。


网站导航: