讀古今文學網 > Maven實戰 > 11.10 Hudson工作目錄 >

11.10 Hudson工作目錄

到目前為止,本章都是從用戶界面的角度介紹Hudson的各種功能。用心的讀者可以想像到,Hudson的各種配置、任務、報告肯定是以文件的形式存儲在磁盤中的。這就是Hudson的工作目錄,瞭解該目錄不僅能幫助讀者理解Hudson用戶界面中的各種特性,更重要的是,讀者需要明白怎樣為Hudson分配合理的磁盤空間,長期運行的持續集成服務往往會消耗大量的磁盤空間,理解哪些任務對應的哪些文件消耗了多少磁盤空間,對持續集成服務的維護來說至關重要。

默認情況下,Hudson使用用戶目錄下的.hudson/目錄作為其工作目錄。例如,在筆者的Vista系統上,該目錄為C:\Users\juven\.hudson\,而在Linux系統上,該目錄為/home/juven/.hudson/。由於該目錄會漸漸消耗大量的磁盤空間,因此用戶往往會希望自定義該工作目錄的位置,這時用戶可以設置環境變量HUDSON_HOME,例如將其設置為D:\hudson-work。關於如何設置環境變量,請參考2.1.3節和2.2.1節。

一個典型的Hudson工作目錄包含的內容如圖11-34所示。

對這些文件、目錄的解釋如下:

·*.xml:這些XML文件是Hudson核心及相關插件的配置,如config.xml配置了全局的JDK、任務視圖等信息,hudson.tasks.Maven.xml配置了Maven安裝信息,hudson.tasks.Mailer.xml配置了郵件服務器信息,等等。

圖11-34 Hudson工作目錄的內容

·war:如果用戶獨立運行hudson.war,那麼其內容會被釋放到該目錄中後再啟動。

·users:Hudson所存儲的用戶信息。

·userContent:用戶可以將任意內容放到該目錄下後通過Hudson服務頁面的子路徑訪問,如http://192.168.1.101:8080/userContent/。

·updates:這裡存儲了各類可更新的插件信息。

·plugins:所有Hudson插件都被安裝在該目錄而不會影響到Hudson的核心。

·jobs:該目錄包含了所有Hudson任務的配置、存儲的構建、歸檔的構建輸出等內容。本節稍後會詳細解釋該目錄。

上述目錄中最重要的可能就是jobs子目錄了,這裡包含了所有Hudson的任務配置、每個任務的工作區、構建歷史等信息,具體內容如圖11-35所示。

圖11-35中的jobs目錄下有兩個子目錄account和maven3,它們分別對應了兩個Hudson任務。每個任務都會包含如config.xml、nextBuildNumber、scm-polling.log等文件,其中的config.xml包含了該任務的所有配置,如SCM地址、輪詢頻率等。

每個任務目錄下會包含一個workspace子目錄,這就是該任務的工作區。這裡有最近一次構建所包含的源代碼及相關輸出。

任務目錄下還有一個builds子目錄,該目錄包含了所有Hudson記錄的歷史構建,每個構建對應了一個目錄,這些目錄都是以構建所發生的時間命名的,如2010-04-15_14-56-08,每個構建目錄包含了一些文件記錄其成功失敗信息、構建日誌、測試報告、變更記錄等。如果用戶為該任務配置了文件歸檔,那麼每次構建歸檔的內容都會存儲在archive子目錄下。

圖11-35 Hudson工作目錄的jobs子目錄內容

可以想像,如果用戶沒有如11.6.1節中介紹的那樣拋棄舊的構建,那麼每次構建的記錄都會保存在任務目錄的builds子目錄下。隨著時間的推移,這些記錄會消耗大量的磁盤空間,因此用戶在使用Hudson的時候應該按照實際情況為其分配足夠的磁盤空間,同時合理地拋棄舊的構建記錄。