RPM( Red Hat Package Manager)系統(tǒng),用于基于Red Hat的各種系統(tǒng),給這個問題提供了一個解決方案。RPM系統(tǒng)的核心是一個稱為spec文件的構(gòu)件描述文件。它列出了需要成功構(gòu)建所需的構(gòu)建依賴、構(gòu)建命令,還有使用的配置選項。因為一個spec文件本質(zhì)上是一個基于宏的shell腳本,所以你可以用它來構(gòu)建許多類型的軟件。砌,M系統(tǒng)也認(rèn)為構(gòu)建源代碼應(yīng)該從零開始。可以用構(gòu)建之前通過spec文件給源代碼打包的方式適配源代碼。
最終工件
在使用RPM系統(tǒng)完成構(gòu)建之后,你得到了一個RPM文件,這種類型可以很方便地給Red Hat系列操作系統(tǒng)部署工件。對于Debian系的發(fā)行版來說,你得到的是個.deb文件。
Maven構(gòu)建的最終結(jié)果一般是企業(yè)級檔案,簡稱EAR文件。它包含著Java企業(yè)級應(yīng)用。
它是我們之后要部署到生產(chǎn)服務(wù)器上的最終部署工件。
本章我們關(guān)心部署所需工件的構(gòu)建,在第7章部署代碼中,我們討論工件的最終部署。
盡管如此,即使在構(gòu)建工件的時候,我們也需要理解如何部署它們。現(xiàn)在,我們將要使用以下的經(jīng)驗法則:操作系統(tǒng)級別的包優(yōu)于特定的包。這是我的個人喜好,其他人可能不同意。
讓我們簡要地討論一下這個經(jīng)驗法則的背景和其他的方案。