我在 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 带空格\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。