Gradle 任务已损坏 - 无法执行

the*_*ous 2 gradle

import org.apache.tools.ant.filters.ReplaceTokens
task genScript(type:Copy){
    copy{
        from "../../scripts/script.txt"
        into projectDir
        filter ReplaceTokens, tokens: [baseName: jar.baseName, version: jar.version, prefix: 'x']
    }
}

jar.doLast{
    tasks.genScript.execute()
}
Run Code Online (Sandbox Code Playgroud)

genScript如果我只是单击它并运行,则执行得很好。但是当我这样做时..\gradlew clean jar,它给了我以下错误:

在 org.gradle.api.tasks.Copy 类型的任务“:myModule:genScript”上找不到参数 [] 的方法execute()。

如何修复它?

我正在使用 Gradle 6.0.1。

Bjø*_*ter 6

您无法在较新版本的 Gradle 中以编程方式执行其他任务中的任务。相反,您应该声明任务依赖项,Gradle 将确保它们以正确的顺序执行。

快速修复只是取决于jar您的任务,如下所示:

jar.dependsOn('genScript')
Run Code Online (Sandbox Code Playgroud)

或者,您可以将逻辑移至任务doLast中的块中jar