去下載最新的安裝包,在xp下的話,直接下載exe最好了~~
CruiseControl過程簡單講就是:按照config.xml的配置,定期對配置的項目進行更新,然後自動構建(這裡就需要配置用什麼來擷取,CVS還是SVN等),並做好每次構建的記錄。
CruiseControl持續整合環境的配置安裝
第一步:
A、從官方網站下載最新的穩定版本(最好下載exe版本,不用配置這麼多變數)
B、下載JAVA安裝包
C、 安裝代碼同步工具,SVN或Git等
第二步:解壓下載的工具包,並在你的環境變數中增加環境變數
A、JAVA_HOME設定為你的JAVA安裝目錄
B、設定系統path變數(把JDK路徑,SVN和Git路徑加入path變數中,並使得Svn和Git等代碼管理工具可命令列調用,Git還需要配置HOME,詳細見本文最後)
第三步:直接運行CC解壓目錄/安裝目錄下的cruisecontrol.bat即可
第四步:在你的瀏覽器地址欄輸入:http://localhost:8080/dashboard/tab/dashboard ,如果有介面表示安裝成功
第五步:關閉cruisecontrol.bat視窗。配置config.xml,加入project,見下邊介紹。
第六步:重新運行cruisecontrol.bat。
如果要改服務的連接埠,請修改安裝目錄下的cruisecontrol.bat。找到-jmxport 8000 -webport 8180 -rmiport 1099
webport就是網頁版監視器的連接埠。另外CC的exe版本會在windows中加了服務,可以用msconfig去修改啟動配置。
參考這個文章,理解CruiseControl目錄的結構,例如projects。
http://www.cnblogs.com/xiaocheng/archive/2009/06/21/1507755.html
參考這個文章,進行配置(config.xml和projects裡邊的build.xml):
http://shenzhenchufa.blog.51cto.com/730213/272575
關鍵是bootstrappers,設定每次schedule的build之前,該啟動什麼。
例如填<svnbootstrapper localWorkingCopy="projects/${project.name}/ABC/" />,即是到localWorkingCopy目錄下,執行svn -update命令來更新代碼。也可以用其他的,例如Git。
然後是modificationset,具體參考上述的文章內的注釋。
在config.xml中註明有什麼項目,然後projects中對應放這個項目
(config.xml不配置svn資訊或者其他代碼同步工具的資訊,初始化的時候,應該手工先在project目錄中checkout那個svn項目,並設定儲存密碼)
具體請參考http://cruisecontrol.sourceforge.net/main/configxml.html(這裡有對每個節點最官方的說明)
關於config檔案,這裡也有一個簡單的例子:
http://www.blogjava.net/qimoxuer12/articles/270896.html
可能出現的問題:
1. 如果配置後發現無法啟動,右擊CruiseControl.bat編輯,在最後空白處,加一行pause。這樣就可以看到出錯資訊了。
2. 如果專案檔無法自動更新。可能是svn等代碼管理工具沒有配置成命令列執行。
須確保在命令列下,svn可以使用。因為CC啟動後,會通過svn -update去配置庫上更新CC中的項目代碼. 可以用svn --version測試是否在命令列模式下可使用。如果使用其他同步工具,例如Git,也一樣,應該先在該目錄嘗試命令列方式擷取最新代碼。
這裡就需要安裝subversion並配置path了,也可以簡單直接安裝VisualSVN Server。畢竟CC的機器同時作為SVN伺服器也不錯。(有人說TortoiseSVN安裝後沒有命令列方式,對此我不清楚,我是直接把烏龜和VisualSVN Server都安裝了,所以什麼都不用配置。也許CC就內建了svn,所以可以一步一步來,先裝CC,看能否用svn命令,不行再裝烏龜,再不行。。。)
關於SVN Server,見:http://www.cnblogs.com/kenkofox/archive/2010/10/17/1853525.html
關於CC + git,參考一下以下的配置,主要就是bootstrapper的配置了。同樣先在project目錄中clone出git的項目,之後CC會調用git命令列更新代碼。
1. 啟動CC後,可能會出現問題,可能會停在bootstrapping不動,參考了一篇文章說法,這是因為通過CC啟動的git不能訪問到SSH引起的。需要在系統變數中,添加HOME,設定為使用者目錄C:\Documents and Settings\XXXX。同時,還要在path中加入git的路徑,讓git能在CMD中使用(右擊我的電腦,屬性,進階,環境變數)
2. 注意路徑問題。localWorkingCopy指定的路徑必須正好是Git項目的目錄(內有“.git”隱藏目錄)。因為Git的clone命令需要先指定一個空目錄,所以這裡需要注意一下,別指定為父目錄。
3. !!!初始化項目目錄一定要用clone命令,不要用pull什麼的。
<?xml version="1.0" encoding="UTF-8"?>
<cruisecontrol>
<project name="your_project" buildafterfailed="false">
<propertyfilelabelincrementer propertyfile="projects/${project.name}/source/build.number"
propertyname="build.number"
preBuildIncrementer="true" />
<property file="projects/${project.name}/source/config.properties" />
<listeners>
<currentbuildstatuslistener file="logs/${project.name}/status.txt" />
</listeners>
<bootstrappers>
<gitbootstrapper localWorkingCopy="projects/${project.name}/source" />
</bootstrappers>
<modificationset quietperiod="60">
<git localWorkingCopy="projects/${project.name}/source/" />
</modificationset>
<schedule interval="60">
<ant anthome="apache-ant-1.7.0"
buildfile="projects/${project.name}/source/build.xml"
target="dist">
<property name="continuous-integration" value="true" />
</ant>
</schedule>
<log dir="logs/${project.name}">
<merge dir="projects/${project.name}/build/logs/"/>
</log>
......
</project>
</cruisecontrol>