Gradle實戰從零開始

Gralde是基於Apache Ant, Apache Maven的專案自動化建置工具,主要用Groovy語言撰寫,跑於JVM上,支援語言目前限Groovy,Java,Scala。

安裝

  1. 下載JRE or JDK –> 下載頁面
  2. 下載Gradle –> 下載頁面
  3. 設定環境變數Path –> 指到%GRADLE_HOME%/bin
  4. 輸入gradle -v指令查詢Gradle版本

建立第一支Hello World!!

新增一個檔案,並命名為build.gradle,輸入內容如下並存檔:

task helloWorld << {
    println 'Hello world!!'
}

在你的terminal跑下列指令跑第一個gradle task!!

gradle helloWorld

執行如果只想單純跑結果,不想輸出太多log,可以下 -q

gradle -q helloWorld

build.gradle是gradle預設查找的檔名,如果要跑不同檔名的gradle可以下 -b

gradle -b build.gradle helloWorld

第一個Hello World Gradle Task就完成了!!!

Tasks

Gradle專案是由一或多個Task組成與建置,一個最簡單的task可以長得如下:

task helloWorld

但上述task其實並沒有做任何事情,所以可以稍作修改如下

description = "hello desc in project"
task helloWorld {
   description = "hello desc in task"

   ext {
        taskProp = "hello prop in task"
   }

   doFirst {
        println "Project Description: $project.description"
        println "Task name $name"
        println "Task Description: $description"
   }

   doLast {
        println "Task Property: $taskProp"
   }
}

上面的Task會先去跑doFirst 和 doLast的action,結果如下:

===================
Console
===================
$ gradle -q helloWorld
Project Description: hello desc in project
Task name helloWorld
Task Description: hello desc in task
Task Property: hello prop in task

每一個gradle裡面的task都是對應至org.gradle.api.Task物件,裡面常用的有name, description, group, enabled, dependson, doFirst, doLast, onlyIf。

眼尖的或許有注意到第一個helloWorld task 有 << 在大括弧左邊,其實這是doLast的快速寫法,它其實等同於:

task helloWorld {
    doLast {
       println 'Hello world!!'
    }
}

有了<< 再寫doLast可是會報錯的。

如果task的名稱可能與一些語言預留的關鍵字起衝突,可以改用下列方式命名Task:

task ("helloWorld") << {
    println 'Hello world!!'
}

看到這邊如果對Groovy較不熟悉的朋友,可能會對task旁邊的大括弧及其裡面的語法感到霧煞煞,建議可以先去初探一下這裡,了解一下Groovy的Closure的寫法,可以幫助日後對Gradle的學習。

 

 

Leave a Reply

當第一個留言者!

avatar
wpDiscuz