我是否必须为所有gradle任务明确提供输入和输出?

我是否必须为所有gradle任务明确提供输入和输出?,gradle,Gradle,我正在编写一个定制的gradle构建脚本,并注意到我正在为所有任务放置输入和输出定义 这是预定义任务所必需的,还是它们“知道”它们的结果和依赖关系?例如,此处的输入/输出是否必要 task compileGradleWrapperDependencies(type: GroovyCompile){ source = fileTree("buildSrc/src/main/groovy") { include "com/example/plugins/dsl/SomeFil

我正在编写一个定制的gradle构建脚本,并注意到我正在为所有任务放置输入和输出定义

这是预定义任务所必需的,还是它们“知道”它们的结果和依赖关系?例如,此处的输入/输出是否必要

task compileGradleWrapperDependencies(type: GroovyCompile){
    source = fileTree("buildSrc/src/main/groovy") {
        include "com/example/plugins/dsl/SomeFile.groovy"
        include "com/example/plugins/dsl/OtherFile.groovy"
    }
    destinationDir = "$buildDir/tempBuildSrcCompiled"
    classpath = ...
    ...
    inputs.files fileTree("buildSrc/src/main/groovy") {
        include "com/example/plugins/dsl/SomeFile.groovy"
        include "com/example/plugins/dsl/OtherFile.groovy"
    }
    outputs.files "$buildDir/tempBuildSrcCompiled"
}

Gradle附带的任务类已经定义了它们的输入和输出(在有意义的地方)。声明上面的输入和输出是多余的(您可以轻松地验证自己)。

那么类似于
任务集合现在(依赖于:task1、task2、task3)
已经检测到最新信息了吗?我对@Opals posit有点困惑,它取决于这四个任务或它们的任务类是否定义了它们的输入和输出。如果
alltogethernow
所做的只是捆绑其他三个任务(即,如果没有任务操作),则不需要定义输入和输出。