我正在嘗試使用Ant和MSBuild自動化我的項目(包括java和.net)的構建過程。我已經閱讀了他們,並知道如何在Ant和MSBuild中編寫構建腳本。但是我想知道,一般來說編寫構建腳本是否有任何指導原則或最佳實踐?以下是我找到的兩個,但我希望聽到其他開發人員的更多信息。在Ant或MSBuild中編寫構建腳本的任何最佳實踐
- 在編寫構建腳本,僅僅依賴於位於 源控制和工作文件夾數量有限, 簽出源代碼的項目。不要編寫依賴於源代碼管理中未保留的項目的構建腳本,它們是 。
- 如果一個項目包含一組子系統,並且每個子系統都有其自己的構建腳本,則該項目的構建文件應該只調用 子系統的構建腳本。此外,這些文件應該導入包含目標,如編譯,測試,封裝等
我見過this post以及共同構建文件,但它是對寫作任務的方式詳細。如上所述,我需要更高層次的指導方針。
下面是我從答案中收集的準則:
- 運行間隔建立一個乾淨的環境。這意味着每個構建腳本需要一個
clean
目標。 - 構建腳本通常應包括
compile
,package
和test
目標。 - 如果某個產品有不同的開發線(例如dev,release),則它們都應該具有相同的構建腳本。但是,不同的 參數應該傳遞給這些腳本。
- 在開發線上執行的構建通常包含編譯, 打包,部署和安裝步驟。但在版本 上構建的產品線包括進一步的步驟,例如標記產品和生成更改日誌/發行說明的 。
- 構建腳本也應該保存在源代碼管理中。
- 儘量保持所有的構建腳本構建信息,並不 持續集成服務器(竹,TeamCity的,等等)上
- 如果您的構建使用參數可能會在未來發生變化(例如 網絡地址複製編譯結果),請不要將其硬編碼爲您的構建腳本中的 。相反,使用構建參數可以很容易地控制它更多 。
謝謝大衛。您的意見非常有價值。 – hsalimi