控制Gradle println执行时机
问题现象
初次编写Gradle task打印日志,无论对应task是否执行,该task中println总是执行,跟正常的Java代码认知不一致。
task hello {
println "do sth before execute"
// execute sth
println "do sth after execute"
}
无论该任务是否执行,都会进行打印,为什么呢?
解决办法
话不多说,直接上官网例子,有问题一定要去官网获取第一手资料!!!
https://docs.gradle.org/current/userguide/build_lifecycle.html#header
settings.gradle
println 'This is executed during the initialization phase.'
build.gradle
println 'This is executed during the configuration phase.'
task configured {
println 'This is also executed during the configuration phase.'
}
task test {
doLast {
println 'This is executed during the execution phase.'
}
}
task testBoth {
doFirst {
println 'This is executed first during the execution phase.'
}
doLast {
println 'This is executed last during the execution phase.'
}
println 'This is executed during the configuration phase as well.'
}
Output of gradle test testBoth
> gradle test testBoth
This is executed during the initialization phase.
> Configure project :
This is executed during the configuration phase.
This is also executed during the configuration phase.
This is executed during the configuration phase as well.
> Task :test
This is executed during the execution phase.
> Task :testBoth
This is executed first during the execution phase.
This is executed last during the execution phase.
BUILD SUCCESSFUL in 0s
2 actionable tasks: 2 executed
参考
https://stackoverflow.com/questions/23288470/gradle-always-does-println-from-any-task
Gradle任务详述-w3school