【问题标题】:How to execute tasks dynamically in Gradle 5?如何在 Gradle 5 中动态执行任务?
【发布时间】:2020-02-17 08:53:59
【问题描述】:

在 gradle 5 中,删除了 execute() 方法。迁移 gradle 4 任务的最快方法是什么。我不能使用 dependsOn 因为执行是 dynamic 基于例如environmentName 或其他条件:

task clearData() {
    doLast {
        if ( environmentName in nonProductionEnvironments ) {
            clearTask1.execute()
            clearTask2.execute()
        } else {
            throw new GradleException("Not allowed to clear data in this environment.")
        }
    }
}

【问题讨论】:

  • environmentName 在什么时候被评估并且可以使用?是其他任务的结果吗?

标签: gradle build.gradle gradlew


【解决方案1】:

我不熟悉任务中的 execute 方法,但如果它必须是动态的,那么我建议根据您要做出的反应在某处添加一个侦听器。

有:

还有更多,但我相信其中之一可能会解决您的问题。由于dependsOn 不适合您,因此您以Task 的身份尝试做的任何工作听起来都不是正确的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 2019-05-13
    • 2014-06-26
    • 2013-04-27
    相关资源
    最近更新 更多