Hello Gradle

  • 255
  • 0

目前愈來愈火的Java自動化編譯工具Gradle,來對他說聲Hello吧... 

前言

在過去十年來,採用XML格式來當作build file的格式已被廣大被開發者接受,大家耳熟能詳的Ant和Maven就是很好的例子。但XML應付簡單的建置流程還算堪用,但假如情境非常複雜,XML要描述的內容就會大幅增加,可讀性就會降低,這裡的可讀性當然是以人類為角度,對電腦來說,XML的長度當然不是問題;另外一點就是XML難以敘說工作流程,尤其是有條件式判斷的商業邏輯就更難以掌握。

而Gradle是一套自動建置化的工具,以Groovy語言開發,Groovy跟Java還蠻類似的,而聽說C#又跟Java很像,所以,推論C#的開發者能很快的熟悉Groovy語言也應該算是合理的假設。不過也別太擔心,對Gradle的新手來說,甚至可以不知道自己是在用Groovy語言開發,爾後如有複雜的應用情境,再深入學習即可。

Gradle重視domainspecific language (DSL),換句話說,就是用一個更高階的方式來撰寫build file,可透過plug-ins的方式達到,簡單舉例,假設我要命令一個人去工作,我只需要對他下指令"你~去上班",但如果是用低階語言就變成我要下指令"你~離開家~上公車~下公車~到辦公室~上班",後者參雜太多雜訊,無法專注在真正的商業邏輯只有"上班"而已。

 

Get Started

Gradle的安裝非常簡單,先去官方網站下載

解壓縮到你喜歡的資料夾,然後我的電腦=>屬性 =>進階系統設定=>進階標籤=>環境變數,設定下圖資訊。(請設定成解壓縮的目的地資料夾)

接著設定環境變數

設定完成後,打開命令列,輸入gradle,出現下列圖片就算安裝成功。

 

Hello Gradle

來牛刀小試一下,在gradle安裝位置新增一個build.gradle檔案,輸入以下內容。

task hello << {  println 'hello, world'  }

然後執行 "gradle -q helloWorld",出現下列畫面就代表測試成功。 

只有這樣還不夠酷,再來玩玩一個花招,現在我把原本helloWorld的task拆成兩個task,分別是hello和world,world 相依於hello,如下圖所示。

task hello << {  print 'hello, ' }
task world(dependsOn: hello) << {  println 'world' }

然後執行 "gradle -q world",可以發現,結果居然一樣,如下圖所示。

 

結論

本來以為要完成Jenkins的Pipeline script需要了解gradle和groovy,但後來發現Jenkins本身的輔助功能太強大了,可以讓不了解groovy語法的人完成想要的工作,因此,本篇就先了解到Hello world就暫時告一段落嚕。