如何在Gradle中重用现有任务

如何在Gradle中重用现有任务,gradle,Gradle,我有一个问题,如何在Gradle中重用现有任务,推荐的方法是什么? 我想更改重用任务的一些属性 我发现可以在dependsOn中执行或调用execute,但这是推荐的方法吗?我读过,不推荐使用execute。看来dependsOn是更好的方法 例如: task task1() { description = "task1" doLast { println description } } task callModifiedTask1ByDependsOn

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

我发现可以在dependsOn中执行或调用execute,但这是推荐的方法吗?我读过,不推荐使用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()
}
任务task1(){
description=“task1”
多拉斯特{
println描述
}
}
任务调用ModifiedTask1ByDependson(){
德彭森{
任务1{
description=“由dependsOn修改任务1”
}
}
}

任务调用ModifiedTask1ByExecute()Hmm。。。显式调用
execute()
似乎不是一个好主意。请注意,
execute()
方法是Gradle内部API的一部分,因此它可能会发生更改


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

一个任务不能“重用”,也不能从另一个任务调用(仅依赖于)。相反,请声明多个任务。

Peter,是否可以基于另一个任务声明任务?如果在某个插件中实现了另一个任务,那么声明它将是一个问题。没有这样的功能。如果无法更改插件,则必须手动配置任务。