我在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。