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()
}
如果我单击 genScript
并运行,它将运行良好。但是当我做..\gradlew clean jar
时,它给了我以下错误:
在类型为org.gradle.api.tasks.Copy的任务':myModule:genScript'上找不到参数[]的方法execute()。
如何解决?
我正在使用Gradle 6.0.1。
答案 0 :(得分:0)
您无法以编程方式从较新版本的Gradle中执行其他任务中的任务。相反,您应该声明任务依赖性,并且Gradle将确保它们以正确的顺序执行。
快速解决方案只是使jar
取决于您的任务,如下所示:
jar.dependsOn('genScript')
或者,您可以将逻辑移到doLast
任务的jar
块中。