在我的 build.gradle 中,我定义了一个任务。
task("myTask") {
println("Execute my task.")
doLast {
println("myTask is finished")
}
}
我想要条件执行,所以在 afterEvaluate 中我包含了一个 onlyIf 语句。 这里的条件是静态的,但将是动态的。
afterEvaluate {
println("Executing afterEvaluate")
tasks.getByName("myTask").onlyIf { true }
}
当我运行此命令时,“myTask 已完成”将永远不会执行,但我会看到“执行我的任务”。 此外,在日志中我从未看到:
> Task myTask
打印出来,这似乎是运行的所有其他任务的标准配置。
我错过了什么?
查看构建生命周期文档。
无论任务当前是否正在执行,您的打印语句都会执行,因为它不是任务执行的一部分。
将 print 语句移至
doFirst { }
或 doLast { }
块中,使其成为执行阶段的一部分。