針對(duì)持續(xù)集成的工具已經(jīng)是鋪天蓋地,有商業(yè)化的軟件,也有開源的軟件。覆蓋的CI功能也是多種多樣。 從功能角度分,就筆者的學(xué)習(xí)經(jīng)驗(yàn)而言,最關(guān)鍵的是三類:版本控制工具、構(gòu)建工具、CI(Continuous integration)服務(wù)器。而其中最核心的又是構(gòu)建工具。其他開源的、與持續(xù)集成相關(guān)的工具也有很多,但大多數(shù)是輔助性的工具。 筆者學(xué)習(xí)持續(xù)集成時(shí)所選擇的工具為:SVN、Maven、Jenkins。
一、主要工具 (一)、版本控制工具 有時(shí),版本控制又稱為配置管理(SCM),所以版本控制工具同時(shí)也是配置管理工具。在各類版本控制的開源軟件中,最著名的莫過于CVS、SVN(Subversion)、GIT三個(gè)了。 這三個(gè)工具各有千秋。其中,GIT支持離線工作,更適合開源軟件或者開發(fā)人員不能集中辦公情況下的版本管理工作。同時(shí),SVN和GIT可以配合使用。
(二)、構(gòu)建工具 構(gòu)建工具是持續(xù)集成的核心,它對(duì)源代碼進(jìn)行自動(dòng)化編譯、測(cè)試、代碼檢查,以及打包程序、部署(發(fā)布)到應(yīng)用服務(wù)器上。從配置管理工具上下載最新源代碼后,所有的后續(xù)工作幾乎都可以通過構(gòu)建工具完成。 在java開發(fā)中,比較有名的構(gòu)建工具就是Ant、Maven。在PHP開發(fā)中,Phing(基于Ant)也比較有名。同樣的,Maven也可通過相關(guān)的PHP-Maven插件完成對(duì)PHP開發(fā)構(gòu)建的支持。
(三)、CI服務(wù)器 CI服務(wù)器的主要作用就是提供一個(gè)平臺(tái),用于整合版本控制和構(gòu)建工作,并管理、控制自動(dòng)化的持續(xù)集成。 開源軟件中,比較有名的CI服務(wù)器包括Jenkins、CruiseControl、Continuum。而比較有名的商業(yè)化CI服務(wù)器是TeamCity、Bamboo、Pulse等。
二、其他工具 很多工具可以通過與構(gòu)建工具、CI工具相結(jié)合(當(dāng)然,其中有很多工具也可以單獨(dú)工作),來完成更多的自動(dòng)測(cè)試、報(bào)告生成等工作。根據(jù)工具不同,其具體的結(jié)合方法也不同,但大體都是通過插件形式進(jìn)行結(jié)合的。例如:
l
l 這些工具種類實(shí)在太多,可以根據(jù)實(shí)際工作需要進(jìn)行選擇。
|
|