想象一下沒有自動化構(gòu)建工具的場景
大部分的軟件開發(fā)者都會面臨下面的情形:
讓IDE完成所有的工作. 用IDE來編碼,導(dǎo)航到源代碼、實現(xiàn)新特性、編譯代碼、重構(gòu)代碼、運行單元測試,一旦代碼寫完了,就按下編譯按鈕。一旦IDE提示沒有編譯錯誤測試通過,然后就把代碼放入版本控制系統(tǒng)中以便與其他人分享。IDE是非常強大的工具,但是每個人都要安裝一套標準的版本來執(zhí)行上面介紹的任務(wù),當你需要使用一個只有新版IDE才有的特性時,你就不得不更新到新版的IDE。
我的電腦上運行正常. 由于時間比較緊,Joe檢查版本控制的代碼發(fā)現(xiàn)編譯不了,似乎是源代碼中缺少了某個類,因此他聯(lián)系了Tom,TOm非常困惑怎么代碼在Joe的電腦上沒辦法編譯成功,和Joe討論完之后,他意識到自己忘記提交一個類到版本控制當中,所以無法編譯成功,接下來整個團隊都阻塞在這一步,直到Tom提交缺失的那個類上去。
代碼集成簡直就是個災(zāi)難. Acem有兩個開發(fā)小組,一個集中于開發(fā)基于web的用戶接口,另一小組集中開發(fā)服務(wù)器后臺程序,當兩個小組的人集中在一起測試整個程序時,發(fā)現(xiàn)程序的某些功能沒有按照預(yù)期那樣運行,一些鏈接無法解析或者直接返回錯誤的結(jié)果。
這時候你就需要一個自動化的構(gòu)建工具。
項目自動化的優(yōu)勢
構(gòu)建過程
大多數(shù)情況,用戶在命令行執(zhí)行一個腳本,腳本定義了任務(wù)執(zhí)行的順序,比如:編譯源代碼、從A路徑復(fù)制文件到B路徑、裝配交付,這種自動化構(gòu)建過程一天可能執(zhí)行數(shù)次。
http://wiki.jikexueyuan.com/project/gradleIn-action/images/build-process.png" alt="" />