跨平臺編譯的注意事項
盡管可以使用Windows構建從機,有些時候用Linux來構建Windows軟件要來得更容易些。諸如GCC那樣的C編譯器可以通過配置使用MinGW包來進行跨平臺編譯。
是否這樣做更容易取決于要構建的軟件。
一個大系統通常由許多不同的部分組成,一些部分可能包含了不同平臺的本地代碼。
這兒有幾個例子:
。本地的android組件。
。本地為了性能而用C語言編寫的服務器組件。
。本地為了性能而用C或C++語言編寫的客戶端組件。
本地代碼的多少有些取決于你所在的企業的性質。電信產品一般有許多的本地代碼,例如視頻編解碼器和硬件接口代碼。銀行系統可能有用本地代碼編寫的高速消息系統。
這樣做的一方面是件很重要的事:能夠在構建服務器上便捷地構建所有使用中的代碼。否則,就會有一種不良傾向,那就是某些代碼只能在幾臺吃灰的機器上構建。這是我們需要避免的風險。
企業里的系統需要的究竟是什么,只有你自己才知道。
主機上的軟件
視構建的復雜性而定,你可能需要在構建服務器上安裝許多不同類型的構建工具。記住Jenkins主要是用來觸發構建的,它們并不自己構建。這個任務被委托給了例如Maven或Make這樣的構建系統。
以我的經驗來看,有一個基于Linux操作系統的主機是最方便的。大多數構建系統都可以在發行版庫里找到,直接從那里安裝是非常簡便的。
部署服務器上的應用服務器會持續更新,為了讓構建服務器也總是最新,你可以直接使用同一臺部署服務器來做構建。