Android 迭代执行任务
在下面提供的代码中,我可以打印目录中的每个文件名,但当它到达Exec命令时,它只对最后一个文件执行ExecAndroid 迭代执行任务,android,groovy,gradle,Android,Groovy,Gradle,在下面提供的代码中,我可以打印目录中的每个文件名,但当它到达Exec命令时,它只对最后一个文件执行Exec task frmf2xml(type:Exec) { new File('src/orca/').eachFile {file -> if(file.name.endsWith(".fmb")){ println file commandLine 'cmd', '/c', 'frmf2xml.bat', fil
task frmf2xml(type:Exec) {
new File('src/orca/').eachFile {file ->
if(file.name.endsWith(".fmb")){
println file
commandLine 'cmd', '/c', 'frmf2xml.bat', file, 'OVERWRITE=YES'
}
}
}
我希望它在每个文件上运行该工具实际上,我找到了一个解决方案,使用
你从这个链接复制了问题和代码,为什么@chrki LOL是的,当然是在寻找解决方案。顺便说一句,你在@chrki上链接了这段代码,我需要知道它是否可以解决,并给了你奖励,顺便说一句:链接中提供的解决方案不起作用。至少,你必须用
doLast:
:任务frmf2xml{doLast{…}
包装整个任务体。否则,命令将在每次Gradle调用时(无论调用哪个任务)以及在任何任务运行之前(配置与执行阶段)执行。与Groovy的String#execute
不同,使用Gradle的project.exec{…}
更为惯用。
task frmf2xml() {
new File('src/orca/').eachFile {file ->
if(file.name.endsWith(".fmb")){
def cmd = "cmd /c frmf2xml.bat ${file} OVERWRITE=YES"
def result = cmd.execute();
result.waitFor();
}
}
}