1. Projects 和 Tasks
任何一个 Gradle 构建都是由一个或多个 projects 组成. 每个 project 包括许多可构建组成部分. 这完全取决于你要构建些什么. 一个 project 不必描述它只能进行构建操作. 它也可以部署你的应用或搭建你的环境. Gradle 的 build-by-convention 可以让您来具体定义一个 project 到底该做什么.
每个 project 都由多个 tasks 组成。每个 task 都代表了构建执行过程中的一个原子性操作。如编译,打包,生成 javadoc,发布到某个仓库等操作。
2. Hello Wrold
用户可以通过在命令行运行 gradle 命令来执行构建, gradle 命令会从当前目录下寻找 build.gradle 文件来执行构建. build.gradle 文件为构建脚本. build.gradle 文件被称为构建脚本.
第一个构建脚本
build.gradle
//定义了一个叫 hello 的 task.
task hello {
doLast {
println 'Hello world!'
}
}
然后在该文件所在目录执行 gradle -q hello
* -q: 该参数用于控制 gradle 的日志级别, 可以保证只输出我们需要的内容. (可以尝试不加 -q, 然后看结果)
3. 通过 API 进行任务之间的通信 - 增加任务行为.
task hello << { println 'Hello Earth' } hello.doFirst { println 'Hello Venus' } hello.doLast { println 'Hello Mars' } hello << { println 'Hello Jupiter' }
*doFirst 和 doLast 可以进行多次调用. 他们分别被添加在任务的开头和结尾. 当任务开始执行时这些动作会按照既定顺序进行. 其中 << 操作符是 doLast 的简写.
4. 添加自定义属性
假设有一个叫做 myProperty 的属性, 可以用 ext.myProperty 的方式给 myProperty 一个初始值,
task myTask { ext.myProperty = "myValue" } task printTaskProperties << { println myTask.myProperty }
5. 定义默认任务
defaultTasks 'clean', 'run'
这里会直接调用 clean 和 run 的 task. 在多项目构建中, 每个子项目都可以指定单独的默认任务, 如果子项目进行指定将会调用父项目指定的默认任务.
此处只列出几个相对经典的构建基础.