構建管理服務(BuildAdmin)是每夜構建系統的核心協調者,負責管理 CVS 源碼檢出、程式碼度量以及觸發各個應用項目的構建流程。
| 方法名 | 參數 | 執行步驟 | 說明 |
|---|---|---|---|
| cvs_check_out | 應用項目在 CVS 系統中的名稱 | 1. 利用 cvsroot 登錄 CVS 系統; 2. 執行 cvs co 指令,將指定項目源代碼檢出至 ${buildDir}/項目名/ 目錄。 |
從 CVS 中取出項目源代碼 |
| statcvs | module:應用項目 CVS 名稱; project_Build_Tag:當前構建標籤 |
對源代碼進行項目度量,結果存放於 ${statCVSTopDir}/${project_Build_Tag}/ 目錄。 |
對源代碼進行度量分析 |
| execute | 無 | 對每個應用項目依序執行: 1. cvs_check_out2. statcvs3. 執行 ProjectBuild.execute() |
執行完整的項目構建流程 |
應用項目構建服務(ProjectBuild)負責單一項目的編譯、測試、打包與部署,生成詳細的構建日誌與產出物。
| 方法名 | 執行步驟 | 說明 |
|---|---|---|
| test_project | 1. 為測試編譯鏈接源代碼; 2. 安裝測試版產品; 3. 執行測試; 4. 計算測試覆蓋率; 5. 輸出測試結果至 ${testTopDir}/${project_Build_Tag}/;6. 輸出覆蓋率結果至 ${testCoverTopDir}/${project_Build_Tag}/。 |
執行完整測試流程並產出報告 |
| dist_project | 1. 編譯鏈接源代碼; 2. 安裝發布版產品至 ${distTopDir}/${project_Build_Tag}/。 |
生產發布版本產出物 |
| execute | 1. 執行 test_project;2. 執行 dist_project;3. 合併兩者日誌為 ${project_Build_Tag}.txt 存放於 ${projectLogTopDir}/。 |
協調測試與發布流程,彙總日誌 |

BuildAdmin.execute()。ProjectBuild 對象。cvs_check_out 取出源代碼。statcvs 生成度量數據。ProjectBuild.execute() 完成測試與安裝,產生構建信息。
NightlyBuild 對象接收請求後,通過內部儲存的構建信息目錄與標籤列表組織目錄結構,前端可通過超鏈接訪問具體構建詳情(日誌、度量、測試報告、覆蓋率、產出物)。
龔永生,專注 J2EE 技術與門戶系統研發。
地址:北京市海澱區上地信息產業基地開拓路7號聯想大廈 100085
電話:010-62986638-5749 | 手機:13910304330 | 傳真:010-62975824
Email:gongys@legend.com