一:ANT與SVN的內建
ant:大家都知道,是基于java的build工具,不用多說。
svn:目前流行的版本控制軟體(架構?)。
ant可以将svn內建進來,即:在ant的build.xml腳本中,定義svn的下載下傳,進行動态編譯,這是個好東東哦。
腳本配置大緻如下:
<typedef resource="org/tigris/subversion/svnant/svnantlib.xml" classpath="./lib/svnant.jar" />
<svn username="${svn_login}" password="${svn_password}" javahl="true">
<checkout url="${svn_url_ide_environment}" revision="HEAD" destPath="${ide.environment.srccode.dir}"/>
<checkout url="${svn_url_epos_project}" revision="HEAD" destPath="${ide.epos.project.srccode.dir}"/>
</svn>
然後配置環境變量ANT_HOME=D:\Work\Lib\apache-ant-1.6.4、并且在PATH中加入ANT的BIN目錄,這樣,才能在指令行中執行ant指令。
寫好build.xml後,興沖沖的跑去CMD執行ant,哇,錯得一塌糊塗,錯誤提示找不到javahl,這是啥東西,不管他,去http://subversion.tigris.org/下載下傳一個“svnant”,我這邊的版本是svnant 0[1].9.13,将壓縮包根目錄下面的全部DLL檔案拷貝到system32目錄下,再在指令行中執行ant,發現成功了,ant乖乖的開始從SVN伺服器下載下傳檔案了。
二:Ant、SVN、CruiseControl再內建
在cruisecontrol中配置SVN選項:
<bootstrappers>
<svnbootstrapper localWorkingCopy="projects/${project.name}" />
</bootstrappers>
<modificationset quietperiod="30">
<svn localWorkingCopy="projects/${project.name}"/>
</modificationset>
執行cruisecontrol.bat
報錯啦:net.sourceforge.cruisecontrol.CruiseControlException: Error executing SVN update command
大夥可以去google和baidu查查,求助的文章一大堆,就是沒有解決辦法(或是人家解決了不願意說出來)。
都到這份上,該發揮群衆的智慧了。
考慮到上面ANT和SVN內建的問題,首先想到的是,可能沒有在環境變量中引入SVN的執行BIN。筆者安裝的SVN用戶端是TortoiseSVN,于是在配置環境變量SVN_HOME=D:/TortoiseSVN,然後加入PATH中……;%SVN_HOME%\BIN。
再執行執行cruisecontrol.bat,TMMD,還是net.sourceforge.cruisecontrol.CruiseControlException: Error executing SVN update command
發飙了,還是要錯,不就SVN指令找不到嘛,這個好辦,我們再來。
還是去http://subversion.tigris.org/,下載下傳svn-1.4.3-setup.exe,安裝後,将SVN_HOME修改成Subversion的根目錄(檢查一下,在Subversion的BIN目錄下,居然有SVN.EXE)。
再執行執行cruisecontrol.bat,好了,成功了。
我使用的是CruiseControl-2.7.1
首先安裝你的CruiseControl,你可以選擇exe的檔案下載下傳,直接安裝就可以,
然後設定你的環境變量,将svn添加到你的環境變量的path中。
CruiseControl安裝後的目錄結構是:

以下是我的一個項目的config.xml檔案的配置:
xml 代碼
1.<cruisecontrol>
2.<!--這個地方的項目名稱要和你的projects目錄下的項目名稱一樣-->
3. <project name="potato">
4. <listeners>
5. <currentbuildstatuslistener file="logs/${project.name}/status.txt"/>
6. </listeners>
7.
8. <bootstrappers>
9. <svnbootstrapper localWorkingCopy="projects/${project.name}" username="test" password="test" />
10. </bootstrappers>
11.
12. <modificationset quietperiod="60">
13. <svn localWorkingCopy="projects/${project.name}" username="test" password="test" />
14. </modificationset>
15.
16. <schedule interval="3600">
17.<!--這個地方配置的是使用ant來進行編譯,後面的target是調用ant的那個任務,最後面的屬性檔案是我用來配置我的tomcat目錄的,build.xml檔案就是你工程下面的build檔案-->
18. <ant anthome="apache-ant-1.7.0" time="0400" buildfile="projects/${project.name}/build.xml" target="deploy" propertyfile="projects/${project.name}/ant.properties"/>
19. </schedule>
20.
21. <log>
22. <!--merge dir="projects/${project.name}/target/test-results"/-->
23. <!--merge file="projects/${project.name}/dist/checkstyle.xml"/-->
24. </log>
25.
26. <publishers>
27. <onsuccess>
28. <artifactspublisher dest="artifacts/${project.name}" file="projects/${project.name}/dist/i941ok.war"/>
29. </onsuccess>
30. <htmlemail mailhost="inc-mx2"
32. skipusers="true"
33. subjectprefix="[admin.Build.Server]"
35. username="admin"
36. password="admin"
37. charset="UTF-8">
38.<!--編譯成功和失敗發送的郵件位址-->
41. </htmlemail>
42. </publishers>
43.
44. </project>
45.</cruisecontrol>
本文轉自 念槐聚 部落格園部落格,原文連結:http://www.cnblogs.com/haochuang/archive/2012/05/04/2482391.html,如需轉載請自行聯系原作者