这是我当前的 Gradle 任务:
task concat << {
println "cat $localWebapp/sc*.js > $buildDir/js/sc.concat.js"
exec {
commandLine "bash","-c",'cat',"$localWebapp/sc*.js", ">", "$buildDir/js/sc.concat.js"
}
}
即使我使用 println
打印的命令是正确的(如果我将其粘贴到项目目录中的控制台中,它就可以工作),该命令也不会生成sc.concat.js
文件。
发生了什么,我该如何解决?
sh -c
需要一个参数来执行脚本/命令:
commandLine "/bin/sh","-c","cat $localWebapp/sc*.js > $buildDir/js/sc.concat.js"
否则,cat
之后的参数将作为进一步的参数传递给shell,这被"误解"了。
而不是commandLine
,似乎executable
工作:
task concat << {
println "cat $localWebapp/sc*.js > $buildDir/js/sc.concat.js"
exec {
executable "sh"
args "-c", "cat $localWebapp/sc*.js > $buildDir/js/sc.concat.js"
}
}