Gradle的构建
Gradle Task Graphs
Gradle在执行任务之前,会先构建任务图(有向无环图)。因此Gradle会跳过不属于当前构建的任务。
Build Phases
Gradle构建分为三个阶段:初始化、配置、执行阶段。
Initialization
- 查询settings文件。
- 计算setting,确定那些项目和builds参与构建。
- 为每一个项目创建一个
Project。
Configuration
- 计算参与构建的每个项目的
bulid scripts。 - 为所有要求的任务创建一个任务图。
Execution
- 按照任务依赖的顺序安排和执行任务。
Initialization
查找项目的settings文件,计算settings文件。在这个期间Gradle会将库添加到build script类路径,定义哪些被包含的builds参与构建。在这之后,Gradle会为每个build创建一个Project,名字就是build上层目录的名字。
Configuration
在配置期间,Gradle把任务和其他初始化阶段生成项目配置文件添加进去,最后会完成一个任务执行图。
项目计算通知
gradle.beforeProject,在项目开始计算之前通知。gradle.afterProject,在项目计算完成后通知。
任务图计算完成通知
gradle.taskGraph.whenReady,在项目任务图计算完成后通知。gradle.taskGraph.addTaskExecutionGraphListener,在项目任务图计算完成后通知。
任务添加后通知
tasks.whenTaskAdded,当任务被添加后通知。
Execution
任务执行通知
gradle.taskGraph.beforeTask,在任务执行前通知。gradle.taskGraph.afterTask, 在任务执行完后通知。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 BravestSnail's Blog!