下载地址
笔者下载的是当前的最新版本 Gradle:7.4.2。
解压下载之后的.zip文件,配置环境变量。
open ~/.bash_profile 打开配置文件
export PATH=$PATH:/Users/xxx/Documents/gradle/gradle-7.4.2/bin
xxx:为电脑用户名。
进入gradle安装目录并创建build.gradle文件。
cd Documents/gradle
mkdir android-gradle-guide-code
cd android-gradle-guide-code
touch build.gradle
在build.gradle中输入以下代码:
task hello{
doLast{
println "Hello World"
}
}
保存,然后在终端中输入:gradle hello
执行结果如下:
原理:通过执行wrapper任务来生成。
生成指令:
gradle wrapper 不指定任何参数则默认使用Gradle版本作为生成的GradleWrapper版本。
gradle wrapper --gradle-version 7.4.2 用于指定gradle版本。
gradle wrapper --gradle-distribution-url 用于指定下载的Gradle地址。
mkdir gradle-wrapper-demo
cd gradle-wrapper-demo
touch settings.gradle
mdkir app
touch build.gradle
gradlew和gradlew.bat:分别是Linux,Windows下的可执行脚本,用法与原生的gradle一致。
gradle-wrapper.jar:是具体业务逻辑实现的jar包。gradlew最终还是使用java执行这个jar包来执行相关的gradle操作。
gradlew 用法示例:
gradle-wrapper.properties文件
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionBase:下载的Gradle压缩包解压之后的主目录。
distributionPath:相对于distributionBase的Gradle压缩包解压后的路径。
zipStoreBase:同distributionBase,只不过存放的是Gradle压缩包。
zipStorePath:同distributionPath,只不过存放的是Gradle压缩包。
distributionUrl:Gradle发行版压缩包的下载地址。
自定义Wrapper任务
type:Wrapper代表继承自原有的Wrapper任务。
task wrapper123(type:Wrapper){
gradleVersion='7.2' //版本
archiveBase='GRADLE_USER_HOME'
archivePath='wrapper/dists'
distributionBase='GRADLE_USER_HOME'
distributionPath='wrapper/dists'
distributionUrl="https\\://services.gradle.org/distributions/gradle-7.2-bin.zip"
}
日志级别:
级别 | 用途 |
---|---|
ERROR | 错误消息 |
QUIET | 重要消息 |
WARNING | 警告消息 |
LIFECYCLE | 进度消息 |
INFO | 信息消息 |
DEBUG | 调试消息 |
指令说明:
指令参数 | 日志输出级别 |
---|---|
无参数 | LIFECYCLE及其更高级别 |
-q,–quiet | QUIERT及其更高级别 |
-w.–warn | WARNING及其更高级别 |
-i,–info | INFO及其更高级别 |
-d,–debug | DEBUG及其更高阶别 |
指令说明:
指令参数 | 用途 |
---|---|
无参数 | 没有堆栈信息输出 |
-s,–stacktrace | 输出关键性的堆栈信息 |
-S,–full-stacktrace | 输出完整的堆栈信息 |
println():实际上是Java的System.out.println()方法。默认对应的日志级别为-q,–quiet重要消息。
logger.debug()
getLogger().debug()
project.getLogger().debug()
最终都是调用的Project.getLogger()方法。支持error,quiet,warn,lifecycle,info,debug级别。
gradle -?.-h,-help 命令帮助,注意?要是中文的。
./gradlew -h,-help
./gradlew tasks 输出结果会以分组的形式展示。比如Build,Help等。
./gradlew help --task 任务名称 查看指定Task的帮助信息
./gradlew help --task help 查看help任务的帮助信息。
./gradlew hekp --task tasks 查看tasks任务的帮助信息
./gradlew --refresh-dependencies 清除缓存强制刷新。
./gradlew clean assemble 执行多任务按照空格分开即可。
task helloWorld{
println "Hello World"
}
./gradlew hW 驼峰命名首字母即可,注意大小写。