我有疑问如何在Gradle中重用现有任务,推荐的方法是什么?
我想更改重用任务的某些属性。

我发现可以在dependsOn中执行或调用execute,但这是推荐方法吗?我读过不建议执行。看起来dependsOn是更好的方法。

例:

task task1() {
    description = "task1"
    doLast {
        println description
    }
}

task callModifiedTask1ByDependsOn() {
    dependsOn {
        task1 {
            description = "modified task 1 by dependsOn"
        }
    }
}

task callModifiedTask1ByExecute() << {
    project.task1 {
        description = "modified task 1 by execute"
    }.execute()
}

最佳答案

嗯...明确地调用execute()似乎不是一个好主意。注意execute()方法是Gradle内部API的一部分,因此它可能会发生变化。

根据可重用的任务,您可以执行与Gradle中完全相同的操作: copy任务。只需执行任务并配置要执行的更改部分即可(例如from)。您使用dependsOn的示例或多或少遵循了这种情况。

10-08 09:07