一、Gradle构建生命周期的三个阶段
1.初始化
根据settings.gradle,决定哪些项目要参与到构建中来,并创建这些项目的实例。
2.配置
执行各项目下的build.gradle脚本,配置阶段执行的代码包括build.gradle中的各种语句、task的配置块。
buildscript {
dependencies {
println("depencies的配置")
......
}
}
println("build.gradle中,按顺序执行")
task hello{
println("我是配置任务")
doLast{
println("我是执行语句,配置阶段不执行")
}
}
./gradlew -q
depencies的配置
build.gradle中,按顺序执行
我是配置任务
记住不管你执行哪个build哪怕是gradle tasks配置代码都会执行
3.执行
按顺序执行,执行顺序是通过依赖关系决定的
二、添加回调
下面这段代码通过whenReady注册回调接口,当任务图创建的时候这个回调会自动执行,这个逻辑会在任何任务之前执行
task distribution << {
println "my version is $version"
}
task release(dependsOn: distribution) <<{
println 'release'
}
gradle.taskGraph.whenReady { taskGraph ->
println taskGraph.allTasks
if (taskGraph.hasTask(release)) {
version = '1.0'
} else {
version = '1.0-debug'
}
}
./gradlew -q distribution
[task ':distribution']
my version is 1.0-debug
./gradlew -q release
[task ':distribution', task ':release']
my version is 1.0
release
下图帮助了解声明周期回调:
来自gradle实战
网友评论