![6a2c334e5a62b800cefabd1fc9f6628f.png](https://i-blog.csdnimg.cn/blog_migrate/d1dfb8336c9ee34c1886bee86003f215.jpeg)
命令行接口时与Gradle进行交互的一种主要的方法。强烈推荐使用Gradle Wrapper,使用gradlew.bat或gradlew替代gradle当使用Wrapper的时候。
gradle的命令行形式的结构如下所示,选项可以在任务名前后。
[任务名...
如果多个任务被指定,应该使用空格分隔。
选项对应的值可以通过等号=或者空格来指定,推荐使用等号。
=plian
具有启用行为的选项是通过--no-指定相反功能的选项。
--build-cache
--no-build-cache
大多数长形式的选项具有与之等价的短形式选项。
--helo
-h
Note:大多数的命令行选项可以在gradle.properties中指定。
执行任务
执行任务及它所依赖的所有任务。
$ gradle 任务名
多数构建支持一个叫做生命周期任务的通用任务集合,其中包含构建,组合和检查任务。
在多项目构建中执行任务
在多项目构建中,子项目的任务可以通过下列方式执行
$ gradle 子项目名:任务名
可以通过直接指定任务名执行所有子项目的该任务。
$ gradle test
在子项目根目录中调用gradle时,项目名可以省略。
$ cd mySubproject
$ gradle 任务名
当在子项目中执行gradle wrapper时,需要指定gradlew的相对路径。
../gradlew 任务名
执行多任务
一次执行多个任务
$ gradle 任务一 任务二
指定不执行的任务
使用-x或者--exclude-task执行不执行的任务。
![dab18dc00c5b1fe83d6dbb8051987747.png](https://i-blog.csdnimg.cn/blog_migrate/945c525a991dfaa822310cca6191d8c5.png)
假设有complie compileTest test dist四个任务,其依赖关系由上图所示。
$ gradle dist --exclude-task test
> Task :compile
compiling source
> Task :dist
building the distribution
BUILD SUCCESSFUL in 0s
2 actionable tasks: 2 executed
在上面的命令中我们通过--exclude-task选项指定了test不执行,即使test时dist的依赖,它也没有执行,并且compileTest也没有执行,compile任务作为dist任务的依赖任务被执行。
强制任务执行
可以通过使用--rerun-tasks选项忽略罪行的检查强制执行所有的任务。
$ gradle test --rerun-tasks
上面这个命令将会强制test任务和它的所有依赖任务被执行。
发生错误时继续构建
默认情况下,一旦有任务失败,Gradle会立即停止执行从而构建失败。为了在单次构建中发现更多的错误,那你可以使用--continue选项忽略错误的发生,继续构建。
$ gradle test --continue
任务名缩写
当在命令行中指定任务时,没有必要提供任务的全名,可以只提供任务的缩写,这个缩写可以唯一执行某个任务。例如执行compileTest任务。
$ gardle cT
通用任务
下列任务都是内置插件和大多数主要的Gradle插件使用的。
计算所有输出
组合所有输出并且运行所有的检查
$ gradle build
运行应用
组装应用并执行脚本
$gradle run
运行所有的检查
$ gradle check
清理输出
$ gradle clean
项目报告
gradle提供一些内建的任务用于展示构建过程中的细节。这对于了解构建的结构和依赖和解决问题是很有帮助的。
可以使用gradle help得到基本的帮助。
列出项目
$ gradle projects
列出任务
$ gradle tasks
获取更过信息
$ gradle tasks --all
获取执行任务组的任务
$ gradle tasks --group="build setup"
展示任务的使用细节
$ gradle help --task 任务名
获取任务的详细帮助
$ gradle -q help --task libs
将会得到任务的路径、类型、描述和所在的组。
报告依赖
构建扫描将会给出一个全面的,可视化的关于依赖项的报告。
$ gradle myTask --scan
列出项目依赖
$ gradle dependencies
列出buildscript依赖项
这里列出的依赖是gradle脚本运行时所需的依赖。
$ gradle buildEnvironment
列出项目的属性
$ gradle properties
软件模型报告
$ gradle model
Debugging 选项
展示帮助信息
-? -h --help
展示版本信息
-v --version
打印异常栈追踪
-S --stacktrace
打印用户异常栈追踪
-s --stacktrace
创建关于gradle构建的各个方面的细粒度的信息
--scan
调试gradle客户端
-Dorg.gradle.debug=true
调试gradle后台程序
-Dorg.gradle.daemon.debug=true
性能选项
下列选项可以用来优化构建性能。
大多数的选项能被在gradle.properties中指定,因此命令行标志不是必须的。
构建缓存
默认是off
--build-cache, --no-build-cache
后台程序配置
--configure-on-demand, --no-configure-on-demand
设置最大数量的worker
默认为处理器的个数
--max-workers
并行构建项目
--parallel, --no-parallel
指定调度的优先级
有normal和low两种
--priority
生成性能报告
--profile
生成细节报告
--scan
Gradle后台程序选项
开启后台程序
--daemon, --no-daemon
在前台进程中启动守护进程
--foreground
守护进程状态
--status
停止守护进程
--stop
指定空闲时间之后停止守护进程
-Dorg.gradle.daemon.idletimeout=(number of milliseconds)
日志选项
通过gradle属性设置日志级别
-Dorg.gradle.logging.level=(quiet,warn,lifecycle,info,debug)
只打印错误
-q, --quiet
设置日志级别位warn
-w, --warn
设置日志等级位info
-i, --info
在debug模式中打印日志
-d, --debug
声明周期默认是log级别。
通过Gradle属性指定控制台模式
-Dorg.gradle.console=(auto,plain,rich,verbose)
指定控制台输出的类型
--console=(auto,plain,rich,verbose)
通过Gradle属性指定警告模式
-Dorg.gradle.warning.mode=(all,fail,none,summary)
指定如何打印警告
--warning-mode=(all,fail,none,summary)
执行选项
下列选项影响构建的执行。
组合构建
--include-build
不通过访问网络资源指定构建如何操作
--offline
刷新依赖的状态
--refresh-dependencies
在禁用所有任务的前提下运行gradle,展示哪些任务将被执行
--dry-run
指示所有可锁定的解析配置都应保持其锁定状态
--write-locks
指示必须在锁定文件中更新指定模块的版本
--update-locks <group:name>[,<group:name>]*
不重新构建项目依赖
--no-rebuild
环境选项
指定构建脚本
默认位build.gradle
-b, --build-file
指定设置文件
默认位settings.gradle
-c, --settings-file
指定gradle用户家目录,默认是家目录文件夹下的.gradle文件夹
-g, --gradle-user-home
指定项目目录,默认是当前目录
-p, --project-dir
指定缓存目录,默认是项目根目录的.gradle目录
--project-cache-dir
设置JVM的系统属性
-D, --system-prop
指定初始化脚本
-I, --init-script
指定项目属性
-P, --project-prop
设置JVM参数
-Dorg.gradle.jvmargs
设置JDK家目录
-Dorg.gradle.java.home
启动新项目
使用gradle init内置任务创建一个新的gradle构建。
$ gradle init
内置的gradle wrapper任务生成一个gradlew脚本,调用指定版本的gradle,如果没有则下载
$ gradle wrapper --gradle-version=4.4
持续创建
监听源文件的变化,自动重新构建
$ gradle test --continuous