Gradle进行构建,都经过3个生命周期阶段:
- 初始化阶段
- 配置阶段
- 执行阶段
Gradle提供了很多生命周期监听方法,可以在各阶段Hook指定的任务;
1.Project
Project提供的生命周期回调方法有
//在Project进行配置前调用 void beforeEvaluate(Closure var1); //在Project配置结束后调用 void afterEvaluate(Closure var1);
beforeEvaluate必须在父模块的build.gradle对子模块进行配置才能生效,因为在当前模块的build.gradle中配置,它自己本身都没配置好,所以不会监听到;
我们用个例子来验证下结果,工程结构如下图所示:
setting.gradle代码:
include ':app' rootProject.name = "FloatWindowL"
FloatWindowL/build.gradle代码:
//对子模块进行配置 subprojects { sub -> sub.beforeEvaluate { project -> println "${project.name}子项目beforeEvaluate回调..." } } println "根项目配置开始---" task rootTest { println "根项目里任务配置---" doLast { println "执行根项目任务..." } } println "根项目配置结束---"
FloatWindowL/app/build.gradle代码:
println "APP sub project config start---" afterEvaluate { println "APP sub project afterEvaluate callback..." } task appTest { println &