当workingDir有空格时,使用gradle和Exec任务

时间:2013-08-29 16:59:53

标签: escaping gradle whitespace

我正在关注documentation,我尝试创建一个Exec任务:

task karmaTest(type:Exec) {

  // #1 workingDir project.projectDir;

  // #2 workingDir project.projectDir.canonicalPath;

  // #3 workingDir project.projectDir.absolutePath;

  // #4 workingDir project.projectDir.absolutePath.replace(" ", "\\ ");
  commandLine 'karma start --singleRun true --browsers PhantomJS src/test/js/config/karma.conf.js'
}

任务非常简单。它只需要使用karma执行javascript测试。

输出#1:

  

引起:java.io.IOException:无法运行程序“karma start   --singleRun true - 浏览器PhantomJS src / test / js / config / karma.conf.js“(在目录中)   “/家庭/ eianni /溴/存储库   Ciao / git / workflowcobrand / wfc-services“):error = 2,没有这样的文件或   目录

输出#2:

  

引起:java.io.IOException:无法运行程序“karma start   --singleRun true - 浏览器PhantomJS src / test / js / config / karma.conf.js“(在目录中)   “/家庭/ eianni /溴/存储库   Ciao / git / workflowcobrand / wfc-services“):error = 2,没有这样的文件或   目录

输出#3:

  

引起:java.io.IOException:无法运行程序“karma start   --singleRun true - 浏览器PhantomJS src / test / js / config / karma.conf.js“(在目录中)   “/家庭/ eianni /溴/存储库   Ciao / git / workflowcobrand / wfc-services“):error = 2,没有这样的文件或   目录

输出#4:

  

引起:java.io.IOException:无法运行程序“karma start   --singleRun true - 浏览器PhantomJS src / test / js / config / karma.conf.js“(在目录中)   “/家庭/ eianni /溴/库\   Ciao / git / workflowcobrand / wfc-services“):error = 2,没有这样的文件或   目录

正如你所看到的,我尝试过不同的方式,但我仍然遇到错误。我认为这不是白色空间,因为当我重命名时If得到相同的错误而且我也删除了workingDir(因为docs的默认值是project.projectDir但我仍然得到错误)。

1 个答案:

答案 0 :(得分:1)

根据您链接到的文档,commandLine获取命令行参数列表,而不是包含完整命令行的单个字符串。列表中的第一项被视为可执行文件。为方便起见,您可能希望保留一个字符串并将其拆分为tokenize()

commandLine 'karma start --singleRun true --browsers PhantomJS src/test/js/config/karma.conf.js'.tokenize()