3

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

4

0 回答 0