學習gradle 基礎語法

2021-10-07 05:23:41 字數 2809 閱讀 9574

gradle 裡的任何東西都是基於這兩個基礎概念:

projects ( 專案 )

tasks ( 任務 )

一、入手專案,hello world:

1、在目錄中新建build.gradle 的檔案

2、在檔案中寫入

task hello 

}

3、在命令列裡, 進入指令碼所在的資料夾然後輸入 gradle -q hello 來執行構建指令碼。意思就是讓gradle執行名為hello的task。-q 代表 quiet 模式. 它不會生成 gradle 的日誌資訊 (log messages), 所以使用者只能看到 tasks 的輸出

二、用閉包形式修改helloworld

task hello <<
與前面的例子比較, dolast 被替換成了 <<. 它們有一樣的功能, 但看上去更加簡潔了

其他閉包例子:

task upper <<
三、一些常用語法形式

1、迴圈

task count << 

}

輸出:

> gradle -q count

0 1 2 3

2、依賴,應該是無task的先後順序

task taskx(dependson: 'tasky') << 

task tasky <<

gradle -q taskx 命令的輸出

> gradle -q taskx

tasky

taskx

或者可以在引數外宣告,加入乙個依賴

task taskx << 

task tasky <<

taskx.dependson tasky,othertask

3、動態任務

4.times 

}

建立了4個名字不同的任務 task0, task1, task2, task3

gradle -q task1 命令的輸出

> gradle -q task1

i'm task number 1

4、加入行為

task hello << 

hello.dofirst

hello.dolast

hello <<

gradle -q hello 命令的輸出

> gradle -q hello

hello venus

hello earth

hello mars

hello jupiter

dofirst 和 dolast 可以被執行許多次. 他們分別可以在任務動作列表的開始和結束加入動作. 當任務執行的時候, 在動作列表裡的動作將被按順序執行. 這裡第四個行為中 << 操作符是 dolast 的簡單別稱.

5、短標記法

有乙個短標記 $ 可以訪問乙個存在的任務. 也就是說每個任務都可以作為構建指令碼的屬性:

task hello << 

hello.dolast

gradle -q hello 命令的輸出

> gradle -q hello

hello world!

greetings from the hello task.

name 是任務的預設屬性, 代表當前任務的名稱, 這裡是 hello.

6、自定義任務屬性

task mytask 

task printtaskproperties <<

gradle -q printtaskproperties 命令的輸出

> gradle -q printtaskproperties

myvalue

7、定義使用方法

file filelist(string dir)  as filefilter).sort()

}

使用方法

task checksum << "

}}

8、預設任務

defaulttasks 'clean', 'run'

task clean <<

task run <<

task other <<

gradle -q 命令的輸出

> gradle -q

default cleaning!

default running!

9、通過 dag 配置

gradle 有乙個配置階段和執行階段. 在配置階段後, gradle 將會知道應執行的所有任務. gradle 為你提供乙個"鉤子", 以便利用這些資訊.

task distribution << 

task release(dependson: 'distribution') <<

gradle.taskgraph.whenready else

}

最重要的是 whenready 在 release 任務執行之前就已經影響了 release 任務. 甚至 release 任務不是首要任務 (i.e., 首要任務是指通過 gradle 命令的任務).

gradle 語法基礎

groovy 是基於jvm 的開發語言,既可以面對物件 也有指令碼語言的特性 基本特性 特性def value 1 被識別為整型 assert語句 且引數不需要括號 assert value 2 def s1 abc 單引號普通字串 def s2 abc equals 雙引號字串 可用 解析變數 d...

Gradle 學習之路

gradle 的官網 在 mac 下gradle 的配置 gradle home usr local bin gradle 2.7 export gradle home export path path gradle home bin 然後再在console上輸入以下命令 source bash p...

gradle 學習記錄

author janloong do o jar into lib sourcesets 設定測試 所在目錄 test builddir out task combinefilecontentincremental gradle在預設情況下已經為project定義了很多property,其中比較常用...