将 linux 上的文件与 Gradle 上的文件串联
Concatenate files on linux with Gradle
这是我当前的 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
文件。
这是怎么回事,我该如何解决?
而不是 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"
}
}
sh -c
接受一个参数让 script/commands 执行:
commandLine "/bin/sh","-c","cat $localWebapp/sc*.js > $buildDir/js/sc.concat.js"
否则 cat
之后的参数将作为进一步的参数传递给 shell,即 "misinterpreted".
这是我当前的 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
文件。
这是怎么回事,我该如何解决?
而不是 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"
}
}
sh -c
接受一个参数让 script/commands 执行:
commandLine "/bin/sh","-c","cat $localWebapp/sc*.js > $buildDir/js/sc.concat.js"
否则 cat
之后的参数将作为进一步的参数传递给 shell,即 "misinterpreted".