使用Gradle在Linux上连接文件

时间:2015-04-27 08:37:09

标签: linux bash groovy 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打印的命令是正确的(如果我将其粘贴到项目目录中的控制台中它也能正常工作),该命令也不会构建{{1}文件。

发生了什么,我该如何解决?

2 个答案:

答案 0 :(得分:3)

sh -c需要一个参数来执行脚本/命令:

commandLine "/bin/sh","-c","cat $localWebapp/sc*.js > $buildDir/js/sc.concat.js"

否则cat之后的参数被作为进一步的参数传递给shell,这被“误解”。

答案 1 :(得分:1)

而不是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"
    }
}