命令行接口
這部分官方文檔來自Command-Line Interface, 總結平時會通過終端來執行的常用的一些命令。
概述
- 格式:
gradle [taskName...] [--option-name...]
, 多個任務之間使用空格分割 - 接收值的選項使用或者不使用
=
連接都是可以的, 官方推薦使用=
. 如:--console=plain
- 啓用行爲類的選項使用
--no-
來表示否定, 比如:--build-cache, --no-build-cache
- 很多長的選項可以簡寫, 如
--help, -h
很多標記選項可以在
gradle.properties
中配置而不用每次執行的時候鍵盤敲入, 詳情查看 configuring build environment guide
常用命令
貼出目錄鏈接方便查閱
Executing tasks
使用最多,gradle task_name
即可, 支持模糊的任務名
:assemble
編譯代碼
:lib_xxx:assemble
執行工程lib_xxx下的:assemble
任務Common tasks
build
Computing all outputs
clean
Cleaning outputsProject reporting
projects
列出所有的工程
tasks
列出所選工程的所有任務, 所在目錄是主工程就是root project, 其他工程可以進入目錄或者加前綴
dependencies
列出所有依賴,查看依賴衝突時常用Debugging options
-S, --full-stacktrace
,-s, --stacktrace
gradle命令執行異常分析
-Dorg.gradle.debug=true
開啓調試, 自定義Gradle plugin需要使用, 帶上--no-daemon
避免守護進程佔用端口
--stop
停止所有指定版本(指./gradlew的方式)守護進程的gradle, 端口占用執行來殺死所有進程Logging options
整理的時候發現的日誌功能,沒用過(習之), 平時用println或者調試Bootstrapping new projects
init
,wrapper
放在Gradle Wrapper中
Gradle Wrapper
官方文檔
使用Gradle Wrapper來執行任務是官方推薦的方式.直接"盜用"官方的wrapper工作流程圖:
添加Gradle Wrapper
gradle wrapper
選項
-
--gradle-version
下載和使用的wrapper版本 -
--distribution-type
wrapper類型, 可選all|bin
, 默認是bin
.
所以選用all
必須手動指定,不然可能花費大量時間來下載gradle. 比如我下載了gradle-4.6-all版本並且配置到環境變量中,想直接拿來初始化wrapper, 切換到工程根目錄執行下面目錄即可:
gradle wrapper --gradle-version 4.6 --distribution-type all
更新Wrapper版本
# Upgrading the Wrapper version
$ ./gradlew wrapper --gradle-version 4.2.1
# Checking the Wrapper version after upgrading
$ ./gradlew -v
初始化工程
上面兩個步驟生成一個沒有任何子工程和代碼的root project, 加點料吧.
./gradlew init
選項
-
--type java-library
使用指定的類型初始化工程.--type
可以是java-application
,java-library
,scala-library
,groovy-library
,groovy-application
,basic
-
init --dsl kotlin
: gradle默認使用groovy作爲dsl語言, 通過--dsl
指定爲kotlin
下面來添加一個groovy的庫
$ mkdir greeting-library
$ cd greeting-library
$ ../gradlew init --type groovy-library
保留build.gradle和src目錄, 其餘文件(夾)全部刪除, 添加include 'greeting-library'
到rootDir/settings.gradle中. 這樣邊不需要手動創建約定的源碼目錄, 其他類型的工程類似. Android工程點這裏