3

gradle exec タスクのスペースに問題があります - スペースを含むパラメータは引用符で囲まれていません。

たとえば、この単純なプロジェクトを作成してみましょう (Windows で作成)

C:\dir with space\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 space\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) を絶対パスから相対パスに変更すると、プロジェクトは正常に動作しますが、この方法では実行したくありません。

実際のプロジェクトでは、コマンド ラインを使用して、スペースを含む多数のコマンド ライン パラメーターを指定します。

私はgradle1.6を使用しています。

4

0 に答える 0