Gralde是基於Apache Ant, Apache Maven的專案自動化建置工具,主要用Groovy語言撰寫,跑於JVM上,支援語言目前限Groovy,Java,Scala。
安裝
建立第一支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的學習。