Android Plugin DSL Reference 参考文档 :
org.gradle.api.Project 配置 ( build.gradle 根配置 ) 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/Project.html
org.gradle.api.initialization.Settings 配置 文档 : https://docs.gradle.org/current/javadoc/org/gradle/api/initialization/Settings.html
Gradle 构建生命周期 :
① 初始化阶段 : 分析构建脚本 , 分析 Gradle 构建脚本 build.gradle , 生成构建脚本对应的 Settings 和 Project 类 ;
② 配置阶段 : 执行 初始化配置 ;
③ 运行阶段 : 执行 Gradle 任务 ;
Gradle 构建声明周期 是可以进行 Hook 的 , 在上一篇博客 【Android Gradle 插件】自定义 Gradle 任务 ⑯ ( 从任务容器 TaskContainer 中搜索 Gradle 任务 | 压缩 packageDebug 任务输出文件 ) 中使用的 Project#afterEvaluate 函数 就是在 ① 分析构建脚本 与 ② 执行 初始化配置 之间执行的方法 ;
// 在 Gradle 分析完成后执行
// 也就是生成了一系列的自带 Gradle 任务之后执行
afterEvaluate {
// 执行 Gradle 分析完成之后的代码
}
与 Project#afterEvaluate 函数 对应的是 Project#beforeEvaluate 函数 , 该函数是在 开始 进行 Gradle 分析构建脚本 之前 执行的 方法 , 函数原型如下 :
public interface Project extends Comparable<Project>, ExtensionAware, PluginAware {
void beforeEvaluate(Closure var1);
void afterEvaluate(Closure var1);
}