gradle學習筆記 1

2022-02-10 18:26:18 字數 3110 閱讀 7150

1. 安裝

gradle web site

;(2) 新增環境變數:

1) 變數名:gradle_home

2) 為path變數新增乙個值:gradle_home/bin

3) 測試。在命令列裡輸入gradle -v,若顯示一些gradle資訊,說明安裝成功。

2. hello world

(1) 基本概率

gradle中的一切都基於兩個概念:project

和task

;每次gradle build

都是組裝乙個或多個project。project可能是乙個library jar,也可能是乙個web應用,它還能是乙個配置(不一定能被build

);每乙個project由乙個或多個task組成

(2) 基本操作

例1

build.gradle

task hello 

}

現在你能在命令列中進入該檔案所在目錄,然後輸入命令gradle-q hello 去執行hello任務,你將會在命令列中看到hello world!。

它的執行過程是當你執行gradle命令時,gradle會在當前目錄下尋找build.gradle檔案。

build.gradle也被稱為build script。另外,命令中-q的意思是不要輸出gradle的一些日誌資訊。

還有一種更簡便的task的寫法:

task hello <<

(3) 使用groovy語句

在build指令碼中還可以使用groovy語句。

例2

task upper <<

同樣,執行命令gradle -q upper,將輸出:original:hello world !(換行)upper case:hello world !

例3

task count <<

}

輸出:0 1 2 3。注意:$it 是被雙引號包含。

(4) 任務的依賴(task dependencies)

task hello <<

task intro(dependson: hello) <<

輸出:hello world,i'm gradle!

另外,若想實現lazy dependson(懶依賴),即把依賴任務寫到被依賴任務的前面,例如上面想要將intro任務寫到hello任務的前面,需要將intro任務中的dependson: hello中的hello打上單引號,否則會報could not find property 'hello' on root project 'test'.錯誤,即:

task intro(dependson: 'hello') <<

task hello

<<

(5) 動態任務(dynamic tasks)

例4

4.times 

}

task0.dependson task2, task3

執行命令gradle -q task0,輸出:

i'm task number 2

i'm task number 3i'm task number 0

為乙個存在的任務新增行為,如下:

例5

task hello <<

hello.dofirst

hello.dolast

hello

<<

輸出:

hello venus

hello earth

hello mars

hello jupiter

(6) 額外的任務引數(extra task properties)

例6

task mytask 

task printtaskproperties

<<

輸出:myvalue

(7) 使用 ant 任務

例7

task loadfile <<"}

}}

為了增強**的靈活性與重用性,可以將一些**抽取成乙個方法,如:

(8) 預設任務

例8

defaulttasks 'clean', 'run'task clean 

<<

task run

<<

task other

<<

輸出:

default cleaning!default running!

(9) configure by dag

例9

task distribution <<

task release(dependson: 'distribution') <<

gradle.taskgraph.whenready

else

}

執行gradle -q distribution輸出:we build the zip with version=1.0-snapshot

執行gradle -q release

輸出:

we build the zip with version=1.0we release now

Gradle學習筆記

近日學習使用androidstudio進行安卓方向的開發,對於其gradle功能一直不太理解,經過資料查詢,彙總在此以便記錄。1.gradle的來歷及意義 gradle 是新一代的自動化構建工具,它是乙個獨立的專案,跟 as android 無關。但google 在推出 as 的時候選中了 grad...

Gradle學習筆記(四)

構建指令碼 gradle構建指令碼將向你展示groovy的所有出色的功能,接下來看看它強大的功能 example 在gradle的任務 tasks 中使用groovy語言 build.gradle task upper 儲存檔案,輸入命令列 gradle q upper執行完之後將會輸出 origi...

Gradle讀書筆記1

本系列為個人讀書筆記,有關書目參考 gradle中文使用文件 gradle使用指南 2 配置gradle到系統環境變數 3 新建專案工程,在工程根目錄下新建build.gradle 筆記 以當前資料夾為工程專案名。gradle指令碼檔案固定名為build.gradle task hellogradl...