Rational Team Concert(RTC)是構建在 IBM Rational 面向軟件交付技術的下一代協作平台 Jazz 上的協作式的軟件開發環境。它包含了集成的源代碼控制、工作項管理和構建管理等功能。其中,它的構建功能非常豐富,提供了構建通知、控制、跟蹤等功能。同時,團隊成員能夠隨時查看構建的進度、構建中的錯誤和構建結果,請求構建以及反向查詢相關的變更集和工作項。為了滿足不同人員、不同環境的需求,RTC 的客戶端提供了多種版本,包括獨立運行的版本,單獨的 Eclipse 插件版本以及 Web 的訪問方式。
基於 Web 的訪問方式允許不安裝任何 RTC 客戶端,只要通過浏覽器就能訪問構建的大多數功能,這對於非開發人員是一種非常方便的訪問方式。在浏覽器中先輸入 Jazz 服務器的訪問地址,選擇構建項目,進入了 RTC 構建的功能選擇界面,具體操作如下圖 1,圖 2,圖 3 所示。
查看本欄目
用戶可以通過選擇 Browse build definition 來浏覽當前構建項目中所有的構建定義,如下圖 4 所示,當前構建項目中包含 9 種構建定義,這些構建定義是針對於不同工作流或針對同一工作流的不同構建方式而定義的。
在這些構建定義中,用戶可以選擇某種構建定義並使用編輯按鈕對進行重新配置及更改,具體操作如圖 5 所示。
用戶進入構建功能的選擇界面之後,可以選擇 Browse build queue 來查看相應的構建隊列,進入構建隊列查看頁面後,可以在進度(Progress)列中查詢隊列中構建所處的狀態,具體操作如下圖 6 所示,下圖說明構建隊列中有一構建處於運行中,並且構建進度大約為 99%。
當用戶單擊某一構建的標簽列時,就可以直接查看當前構建的詳細信息,如開始時間(Start time)、構建在隊列中的時間(Time in Queue)、構建定義(Build definition)、構建引擎(Build engine)、是否允許刪除(Deletion allowed)等等,具體操作如下圖 7 所示。
用戶可以通過選擇 Browse build engines 查看當前構建項目中所有的構建引擎,通常一個構建引擎可以用於多個構建定義,在本例中,當前構建項目中定義的一個構建引擎可以用於此構建項目中的 9 種構建定義。從下圖 8 中可以得知,圖中的構建引擎正處於忙碌狀態,當用戶將鼠標指向構建引擎上時,一些詳細的信息將會列出,如標識(ID)、激活狀態(Activation)、忙碌狀態(Status)及處於運行的構建(In Progress Builds)等等。
構建是指采用構建項目中的構建定義,對當前工作流中最新的源代碼進行編譯打包,最終生成滿足格式的構建結果。用戶可以按以下幾個步驟進行構建:從構建項目中所有的構建定義中選擇符合用戶要求的一種進行構建,構建定義界面如圖 4 所示。在選擇某個構建定義之後,進入構建結果頁面,從構建結果頁面右上角中所有可執行的操作中請求構建(Request Build),具體操作如下圖 9 所示。
當用戶選擇請求構建之後,當前構建定義的一些屬性定義將會以表格的方式列出,用戶可以更改這些屬性的定義以滿足特定的需求,最後進行提交(submit)。
查看本欄目
所謂的預定義構建是指構建時基於過去某個特定構建的屬性定義,並以當前工作流中最新的源代碼進行編譯與打包,與普通構建不同的是其構建時的屬性定義是基於過去某個特定的構建。用戶可以按照如下步驟請求預定義構建:
與之前普通的構建不同,在請求預定義構建之前,需要找到基於某種特定構建定義的構建結果,如下圖 10 所示,找到關於 6.3.3 的構建,並選擇某個特定的構建結果(20130228-0803)。
選擇某個特定構建結果之後,進入查看構建結果頁面,從構建結果頁面右上角可執行的操作中,選擇請求預定義構建(Request Rebuild),具體操作如圖 11 所示。
與請求普通構建相同,在提交預定義構建之前,用戶可以對構建時的屬性作一些更改以滿足用戶此次構建的特殊需求,最後提交構建(submit)。
當基於 web 方式的構建完成以後,可以通過在構建定義的頁面選擇相應的構建版本來對構建結果進行查詢。因為一個軟件多個版本的開發周期可能會重疊,所有的開發版本的持續化構建都會在構建定義的頁面中列出,因此要在相應的開發版本的持續化構建中去查詢其構建的結果。如圖 4 所示,該軟件存在 6.3.1,6.3.1.1,6.3.2,6.3.3 和 6.4 五個版本的構建。單擊相應版本的構建,將可以看到所有提交過的構建結果,如圖 11 所示。如果需要查看特定的構建結果,只需單擊相應的構建結果就可以進行查詢,如圖 12 所示,從圖中可以看出該構建基於 6.3.3 的工作流,並且由構建引擎自動觸發,耗時 4 分 20 秒。同時此構建與前一個構建相比較而言,包括一個新的工作項。
單擊 Logs 選項,如圖 13 所示,可以查看本次構建所生成的日志。如果在構建的過程中遇到任何問題,可以下載日志,通過分析構建日志中輸出的錯誤來找出導致構建失敗的原因。
單擊 Properties 選項,如圖 14 所示,可以查看本次構建所用的屬性。每次構建之前,都需要對本次構建的屬性進行配置,不同的配置將會得到不同的構建結果。
單擊 Work Items 選項,可以對本次構建所包含的工作項進行查詢。而這裡列出的工作項是本次構建和最近的上次成功的構建之間的比較結果,如果本次構建在上一次構建的基礎上包含有新的工作項,將會在本選項中列出;如果沒有工作項列出,說明本次構建沒有包含任何新的改動。如圖 15 所示,在 Work items listed in this build 中列出了工作項 Issue 71099,說明本此構建包含了針對於新的工作項 Issue 71099 以及該工作項涉及的代碼改動。
如圖 16 所示,單擊該工作項 Issue 71226 就可以查看此工作項的具體內容。從而查詢該工作項創建的背景,以及所涉及的改動。
如圖 17 所示,單擊右邊的 change sets 選項,就可以查看該工作項所涉及的代碼改動,如此次構建包含的改動有 test01.java, test02.java, test03.java 和 test04.java。
Web 方式的 RTC 持續構建支持對不同的構建結果進行比較,從而查詢兩次構建都有哪些差異。如需要進行構建結果的比較,如圖 18 所示,在所有構建結果的頁面中選擇需要進行比較的構建結果,然後單擊頁面右上角的“compare build”。
單擊“compare build”後,如圖 19 所示,可以看到所比較的兩個構建結果之間的區別,並分別列出了各個構建結果自己所特有的內容。如果兩次構建結果沒有任何區別,則在各個構建結果所特有的選項下不列出任何的內容。
通過本文的介紹,相信您對 Web 方式使用 RTC 的構建有了一定了解,它能夠完全脫離 RTC 客戶端,允許從包括移動設備的多種設備上訪問,且具備支持構建主要的功能,可以滿足大多數需要,為項目中開發人員以外的項目經理、測試等人員提供了更加靈活的訪問方式。