Gradle Exec任务 - 带空格的参数不使用引号括起来

时间:2013-08-19 06:51:11

标签: gradle build.gradle

我在gradle exec任务中遇到空格问题 - 带空格的参数不会被引号包围。

例如,让我们创建这个简单的项目(在Windows上创建)

C:\ dir with spaces \ build.gradle //将项目放入包含空格的路径中非常重要

task execTest(type: Exec) {
    def runFromGradle = new File(projectDir, 'runFromGradle.bat').getAbsolutePath()
    commandLine 'cmd', '/C', runFromGradle, projectDir.absolutePath
    // commandLine 'cmd', '/C', '"'+runFromGradle+'"', '"'+projectDir.absolutePath+'"' // it also doesn't work
}

C:\ dir with spaces \ build.gradle \ runFromGradle.bat

dir "%1"

使用gradle execTest运行此项目后,cmd会返回此错误'C:\dir' is not recognized as an internal or external command, operable program or batch file。我试过使用ant.exec并将路径放在引号中但没有成功。如果我将第一个参数(runFromGradle)从绝对路径更改为相对,但项目工作正常,但我不想这样做。

在我们的实际项目中,我们使用包含空格的命令行参数的命令行。

我使用gradle 1.6。

0 个答案:

没有答案