Gradle 命令行工具的使用

文章目录

Gradle 本身包含一个命令行工具,正常情况下,Gradle的使用离不开命令行工具 一个正常的Gradle项目应该包含 gradle/wrapper 文件夹,这里会指明你项目使用的Gradle版本,以保证所有项目参与者在不同的系统都使用相同的Gradle版本

最典型的使用

Gradle中最基本的概念之一,任务(Task),你需要执行哪个任务,就使用gradle [taskName]即可,典型的比如java项目包含的jar,安卓项目包含的assembleRelease,可以使用gradle tasks来查看当前项目包含的所有任务和对应的功能

image.png

参数的设置方式,可以在task前也可以在后,有两种参数,一种是有值的,一种是无值的(可以理解为true/false) 有值: --console=plain 无值: --build-cache --no-build-cache,就是在前面加--no-表示false 长参数,短参数的问题,简单来说,短参数有且只有一个字母,长参数就是完整单词,比如:--help``-h,是一个意思

调用 Task

gradle :jargradle jar 是一个意思 但是当你有子项目的时候,比如你的子项目叫sub1,而根项目和子项目有jartask,那如果想要单独调用子项目的jar task,需要使用 gradle :sub1:jargradle sub1:jar

运行多个 task

当想要调用多个项目时,可以直接把task连续输入,使用空格分割即可,例如 gradle build jar就是同时调用两个task 同时运行多个项目时,gradle 的官方文档说明有如下2点

  1. 尽量快,比如提供并行编译等等
  2. 安全,比如 gradle clean build就是先清除再构建,而不会边清除边构建

不执行某特定的 task

image.png

按照官网介绍,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查询任务后台运行的状态