Gradle 命令行工具的使用
文章目录
Gradle
本身包含一个命令行工具,正常情况下,Gradle
的使用离不开命令行工具
一个正常的Gradle
项目应该包含 gradle/wrapper
文件夹,这里会指明你项目使用的Gradle
版本,以保证所有项目参与者在不同的系统都使用相同的Gradle
版本
最典型的使用
Gradle中最基本的概念之一,任务(Task),你需要执行哪个任务,就使用gradle [taskName]
即可,典型的比如java
项目包含的jar
,安卓项目包含的assembleRelease
,可以使用gradle tasks
来查看当前项目包含的所有任务和对应的功能
参数的设置方式,可以在task前也可以在后,有两种参数,一种是有值的,一种是无值的(可以理解为true/false)
有值: --console=plain
无值: --build-cache --no-build-cache
,就是在前面加--no-
表示false
长参数,短参数的问题,简单来说,短参数有且只有一个字母,长参数就是完整单词,比如:--help``-h
,是一个意思
调用 Task
gradle :jar
和 gradle jar
是一个意思
但是当你有子项目的时候,比如你的子项目叫sub1
,而根项目和子项目有jar
task,那如果想要单独调用子项目的jar task
,需要使用 gradle :sub1:jar
或gradle sub1:jar
运行多个 task
当想要调用多个项目时,可以直接把task连续输入,使用空格分割即可,例如 gradle build jar
就是同时调用两个task
同时运行多个项目时,gradle 的官方文档说明有如下2点
- 尽量快,比如提供并行编译等等
- 安全,比如
gradle clean build
就是先清除再构建,而不会边清除边构建
不执行某特定的 task
按照官网介绍,dist 任务依赖test和compile,同时compile也依赖test,可以使用
gradle dist --exclude-task test
来跳过test任务,同时也会忽略掉compileTest这种任务
强制执行所有任务
gradle的任务有缓存机制(),有的任务在某些时间内只会执行一次,可以强制指定这种任务每次都运行
gradle test --rerun-tasks
失败,但继续
gradle test --continue
Gradle在任何任务发生错误时,会停止所有的任务,通过上面的命令可以在发生错误时完成所有不相干的命令(只要没有依赖关系)。
Task 名称的简写
这个很有意思,支持驼峰式的简写,比如你有一个任务叫myCompileSource
,当然,也支持my-compile-src
这种类型的简写
你只需要gradle mCS
就可以调用myCompileSource
任务
约定式的任务
build check run clean 所有插件都应该包含的任务
关于项目的一些报告
1gradle projects # 查看项目
2gradle tasks # 查看任务
3gradle tasks --all # 所有任务
4gradle tasks --group="build setup" #指定分组的任务
内置任务栈
Gradle 内建有一些任务栈
例如:gradle init
用于初始化一个gradle项目,可以使用 --type 来指定类型
其他的配置选项
相对于上面的来说,其他的一些选项就不那么重要,到需要的时候再去查文档即可
一些我认为常用的选项
-q
可以不输出gradle本身的日志,只输出task相关的
-s
运行任务报错的时候用,可以显示错误栈信息
gradle --stop
当有些不知道在哪里后台运行的Gradle Task
时可以使用这个命令,会停止所有的gradle task,按官方说明,是同一个Gradle版本的
--foreground
后台运行
--status
查询任务后台运行的状态