管理構建依賴
在前面那個簡單的例子里,我們往構建日志打印了一個幸運曲奇。
這次練習還不能與管理真正構建的復雜性相比,但至少我們學會了如何安裝和啟動Jenkins,而且如果在安裝fortune程序時遇上了麻煩,你還會對持續集成服務器的陰暗面有一個初步的了解:管理構建依賴。
有些構建系統,例如Maven工具,它的POM文件描述了所需的構建依賴,這一點很不錯。如果這些依賴在構建服務器里還不存在,Maven會自動下載它們。JavaScript的構建工具Grunt也很類似,有一個構建描述文件包含了構建所需要的依賴。Golang為了完成構建,甚至還可以包含GitHub庫的鏈接。
C和C++構建存在著不同的挑戰。許多項目使用GNU的Autotools,它的Autoconf并不描述需要的依賴,而是適配主機上可用的依賴。所以,為了構建文本編輯器Emacs,你需要先運行配置腳本來查明構建系統上潛在的諸多依賴中哪一個是可用的。
讓軟件在許多不同的系統配置上都可用是一個很有用的功能,因為我們并不總是想讓建基于重量級的配置。在這種情況下,我們需要確定哪個功能百分百終將可用。我們當然不想因為在產品環境上遺漏功能而大吃一驚。