Gradle 任务执行

问题描述 投票:0回答:1

在我的 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
打印出来,这似乎是运行的所有其他任务的标准配置。

我错过了什么?

gradle build.gradle
1个回答
0
投票

查看构建生命周期文档。

无论任务当前是否正在执行,您的打印语句都会执行,因为它不是任务执行的一部分。

将 print 语句移至

doFirst { }
doLast { }
块中,使其成为执行阶段的一部分。

© www.soinside.com 2019 - 2024. All rights reserved.