跳过任务,因为它没有源文件,也没有以前的输出文件

Skipping task as it has no source files and no previous output files

这是我的 build.gradle,它有三个任务(一个用于下载 zip,一个用于解压缩,另一个用于执行 sh 文件)。这些任务相互依赖。我正在使用 Gradle 6。因为这些是依赖任务,所以我使用了以下命令:

gradlew C

我收到错误:

Skipping task 'B' as it has no source files and no previous output files.

build.gradle:

task A {
    description = 'Rolls out new changes'
    doLast {
        def url = "https://${serverName}/xxx/try.zip"
        def copiedZip = 'build/newdeploy/try.zip'
        logger.lifecycle("Downloading $url...")
        file('build/newdeploy').mkdirs()
        ant.get(src: url, dest: copiedZip, verbose: true)
    }
}
          
task B (type: Copy, dependsOn: 'A') {
    doLast {
        def zipFile = file('build/newdeploy/try.zip') 
        def outputDir = file("build/newdeploy")
        from zipTree(zipFile)
        into outputDir
    }
}

task C (type: Exec, dependsOn: 'B') {
    doLast {
       workingDir 'build/newdeploy/try/bin'
       executable 'sh'
       args arguments, url
       ext.output = { return standardOutput.toString() }                        
    }
}

我试过跟随并且成功了。而不是添加一个单独的任务来复制,而是在任务A本身中添加了复制功能

task A {
    description = 'Rolls out new changes'
    doLast {
        def url = "https://${serverName}/xxx/try.zip"
        def copiedZip = 'build/newdeploy/try.zip'
        logger.lifecycle("Downloading $url...")
        file('build/newdeploy').mkdirs()
        ant.get(src: url, dest: copiedZip, verbose: true)
        def outputDir = file("build/newdeploy")
        copy {
          from zipTree(zipFile)
          into outputDir
        }
    }
}

task C (type: Exec, dependsOn: 'A') {
    doLast {
       workingDir 'build/newdeploy/try/bin'
       executable 'sh'
       args arguments, url
       ext.output = { return standardOutput.toString() }                        
    }
}