什么是持續集成(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

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33
