1. 构建块
Gradle构建中有两个基本概念:项目(Project)和任务(Task)。每个构建至少包含一个项目,项目中包含一个任务或多个任务。多项目构建中,一个项目可依赖其他项目。类似地,任务可以形成一个依赖关系图来确保其执行顺序。其关系如下图所示:
2. 构建脚本
2.1 项目
一个项目代表一个正在构建的组件(如一个jar文件),当构建启动后,Gradle会基于build.gradle实例化一个org.gradle.api.Project类。并且能够通过project变量使其隐式可用。
- 确定唯一组件: group、name、version
- apply 应用一个插件
- dependencies 依赖jar包
- repositories 远程依赖的仓库
- task 声明任务
- 属性也可以其他方式配置: ext、gradle.properties
2.2 任务
任务对应org.gradle.api.Task。主要包括任务动作和任务依赖。任务动作定义了一个最小的工作单元。可以定义其他任务、动作序列和执行条件。
- dependsOn 动作依赖
- doFirst、doLast<< 添加动作依赖,是一个列表
- 任务是可选的。
2.3 自定义任务
可写成IDEA插件
3. 构建生命周期
生命周期分为三个阶段:
- 初始化 à 初始化哪些项目参与构建,比如多模块项目
- 配置 à 配置Task,及执行顺序
- 执行 à 执行Task,比如doFirst、doLast
此外,还有Hook(钩子)。