Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Gradle是否自动推断任务之间的依赖关系?如果是,什么时候?_Gradle_Kotlin_Gradle Kotlin Dsl_Build Definition_Tooling - Fatal编程技术网

Gradle是否自动推断任务之间的依赖关系?如果是,什么时候?

Gradle是否自动推断任务之间的依赖关系?如果是,什么时候?,gradle,kotlin,gradle-kotlin-dsl,build-definition,tooling,Gradle,Kotlin,Gradle Kotlin Dsl,Build Definition,Tooling,在我的构建脚本中,当我配置downloadUnzipfile任务时,我显式地查询downloadZipFile任务的输出。我认为这足以让Gradle推断出任务之间的依赖关系,但显然不是,因为调用downloadAndUnzipFile`时出错 Execution failed for task ':downloadAndUnzipFile'. > Cannot expand ZIP '/home/jdanek/repos/testing/gradle-infer-deps/build/1.

在我的构建脚本中,当我配置
downloadUnzipfile
任务时,我显式地查询
downloadZipFile
任务的输出。我认为这足以让Gradle推断出任务之间的依赖关系,但显然不是,因为调用downloadAndUnzipFile`时出错

Execution failed for task ':downloadAndUnzipFile'.
> Cannot expand ZIP '/home/jdanek/repos/testing/gradle-infer-deps/build/1.0.zip' as it does not exist.
我的构建脚本
build.gradle.kts

import de.undercouch.gradle.tasks.download.Download

group = "org.example"
version = "1.0-SNAPSHOT"

plugins {
    id("de.undercouch.download").version("4.0.4")
}

tasks {
    val downloadZipFile by registering(Download::class) {
        src("https://github.com/michel-kraemer/gradle-download-task/archive/1.0.zip")
        dest(File(buildDir, "1.0.zip"))
    }

    val downloadAndUnzipFile by registering(Copy::class) {
        from(zipTree(downloadZipFile.get().outputFiles.first()))
        into(buildDir)
    }
}
我也试过了

from(zipTree(downloadZipFile.get().outputFiles.first()))
这也没有定义依赖关系


My Gradle是最新的6.2.2。

为了让Gradle发现任务依赖关系,他们必须对输入和输出使用特定类型,以便Gradle可以为您跟踪依赖关系。请参见主题中的


在您的用例中,
de.underTouch.download
插件似乎公开了一个简单的
List
,它不是一个丰富的类型,因此Gradle无法找到链接。在这种情况下,您必须使用
dependsOn(downloadZipFile)

Aha明确任务依赖关系。我将研究增强de.underuch.download的
de.underuch.download。没有机会。该任务明确旨在支持2.0以上的Gradle版本!隐式依赖项出现在4.x中。