1. 程式人生 > >《實戰gradle》 自動化構建一 瞭解自動化構建

《實戰gradle》 自動化構建一 瞭解自動化構建

  最近在看Benjamin Muschko 的《實戰 Gradle》,雖然這本書並不是基於現在的android|Studio的角度來寫的。但是描述的自動化構建原理非常的透徹,所以我在閱讀的同時把它記錄下來,希望能幫到需要這部分內容的朋友們.
  

專案自動化

  1. 自動化的好處
      在專案沒有自動化的時候,雖然IDE給我們做了很多的事情,但是程式碼的整合完全是一個災難,而且測試過程慢的要死,每一次的部署都好像是在跑馬拉松,打一個比方,想在一個專案裡有兩個小組,編寫web前端頁面的小組和編寫支援前端的後臺小組,當每個小組將程式碼編寫完後,需要做的是到一臺電腦上去編譯這個專案,編譯出一個可交付的軟體,其中每一步都需要手動去完成,其中還會出現很多風險。
      其實對於每一次 持續可充許多編譯和交付方式我們完全可以進行自動化構建,它能夠帶來很多好處,首先,建立可重複的構建,能夠解放重複勞動的時間,第二,構建能夠隨身攜帶,攜帶到任何一個平臺,所以構建應該時基於命令列,不應該依賴於單一作業系統,最後,自動化的構建能夠規避掉大部分的人為風險。
     
  2. 專案自動化的型別
      (1)按需構建  典型用例就是使用者在自己的機器上觸發構建。
      (2)觸發構建  適合在敏捷開發中,通過提交操作來觸發
      (3)預定構建  預先設定時間排程來觸發設計好的自動化構建

自動化構建工具

  我們需要一個工具,它能夠幫助我們建立一個可重複、可靠的、便攜的且不需要手動干預的構建。java流行的開源構建工具,Ant和Maven. 但是Ant和Maven的優缺點都十分明顯,xml的指令碼語言臃腫而且無序,並且預設的標籤和語法,限制了它的靈活性,所以我選擇使用gradle.
Gradle 的有點幾乎囊括了Ant和Maven的有點,並且具備它們所沒有的。可表達性的構建語言和底層API、靈活的約定以及強大的依賴管理、靈活的外掛定製、與其它構建工具較好的整合,這些都是gradle打敗它們的理由。