CommandLine在循环中

时间:2014-04-29 14:11:48

标签: android groovy gradle android-gradle build.gradle

我正在使用gradle任务,它在文件集合循环中执行命令行:

...
collection.each { file ->
        exec {
            workingDir = file(props['WORKING_DIR']).getAbsolutePath()
            commandLine "java", "-jar", file(props['SIGN_TOOL']).getAbsoluteFile(), file
        }
    }
...

不幸的是,gradle任务最终会出现此错误:

  

任务执行失败':signFiles'。

     
    

没有方法签名:java.io.File.call()适用于参数类型:(java.lang.String)值:可能     解决方案:wait(),any(),wait(long),each(groovy.lang.Closure),     any(groovy.lang.Closure),list()

  

我该如何解决这个问题?

Thx MVM

1 个答案:

答案 0 :(得分:2)

你已经调用了你的循环变量file,然后它试图将其用于调用file() ...

尝试重命名闭包变量:

collection.each { aFile ->
    exec {
        workingDir = file(props['WORKING_DIR']).getAbsolutePath()
        commandLine "java", "-jar", file(props['SIGN_TOOL']).getAbsoluteFile(), aFile
    }
}