public class DemoPlugin implements Plugin<Project> {
@Override
public void apply(Project project) {
project.beforeEvaluate {
println("beforeEvaluate")
}
}
}
如果这个DemoPlugin是被写在build.gradle
文件里,像这样apply plugin: 'demoPlugin'
,beforeEvaluate()
方法不会执行,而如果是在rootPlugin里,调用subProject的apply plugin 'demoPlugin'
,则beforeEvaluate()
会被执行。原因是beforeEvaluate()
这个方法是在解析build.gradle
文件之前执行,在build.gradle
中才注册beforeEvaluate()
监听方法,已经晚了。
基于此,我们想在解析build.gradle
之前,改变build.gradle
文件的内容,可以在
beforeEvaluate() 这个方法里修改build.gradle
。
网友评论