首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 程式設計入門

實戰每夜構建(二):構建管理服務與項目構建服務設計

     編輯:Java 程式設計入門

構建管理服務

構建管理服務(BuildAdmin)是每夜構建系統的核心協調者,負責管理 CVS 源碼檢出、程式碼度量以及觸發各個應用項目的構建流程。

核心成員變量

  • cvsroot:儲存 CVSROOT 環境變數,用於登入 CVS 系統。
  • buildDir:儲存臨時存放應用項目源代碼的路徑。

關鍵方法

方法名參數執行步驟說明
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_out
2. statcvs
3. 執行 ProjectBuild.execute()
執行完整的項目構建流程

應用項目構建服務

應用項目構建服務(ProjectBuild)負責單一項目的編譯、測試、打包與部署,生成詳細的構建日誌與產出物。

核心成員變量

  • project_Build_Tag:由項目名稱與當前系統時間組成的唯一構建標籤。

關鍵方法

方法名執行步驟說明
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}/。
協調測試與發布流程,彙總日誌

構建執行場景

構建場景流程圖

  1. 作業系統定時服務啟動,調用 BuildAdmin.execute()。
  2. 對每個被管理項目:
    1. 根據系統時間與項目名生成構建標籤並記錄。
    2. 以構建標籤為參數創建 ProjectBuild 對象。
    3. 調用 cvs_check_out 取出源代碼。
    4. 執行 statcvs 生成度量數據。
    5. 調用 ProjectBuild.execute() 完成測試與安裝,產生構建信息。

瀏覽構建信息場景

瀏覽構建信息流程圖

NightlyBuild 對象接收請求後,通過內部儲存的構建信息目錄與標籤列表組織目錄結構,前端可通過超鏈接訪問具體構建詳情(日誌、度量、測試報告、覆蓋率、產出物)。

文檔撰寫輔助工具

  • Word:文檔排版
  • PowerPoint:圖片組織與繪圖
  • Visio:數據流圖、ER 圖
  • Rational Rose:UML 建模
  • Windows 畫圖:截圖編輯
  • 作業系統全螢幕列印功能

參考資料

作者資訊

龔永生,專注 J2EE 技術與門戶系統研發。
地址:北京市海澱區上地信息產業基地開拓路7號聯想大廈 100085
電話:010-62986638-5749 | 手機:13910304330 | 傳真:010-62975824
Email:gongys@legend.com

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved