无法执行Gradle Exec任务中的sh文件

时间:2018-07-26 09:59:05

标签: gradle

我在项目中配置了这个简单的Gradle任务

task startMyProgram(type: Exec) {
    commandLine "myProgram.sh", "${System.getProperty("argument")}"
}

此sh文件是可执行文件(chmod a+x myProgram.sh),位于我运行Gradle命令的项目的根文件夹中。

当我使用./gradlew startMyProgram -Dargument=foo运行任务时,它失败并显示以下错误消息:

Caused by: java.io.IOException: Cannot run program "myProgram.sh" (in directory "/Users/paristote/Work/my-project"): error=2, No such file or directory

我已经尝试运行诸如commandLine "echo", "Hello World"之类的命令,它们运行正常。

有人知道为什么这个简单的命令失败吗? 如果有帮助,我正在使用Gradle 4.1。

谢谢。

1 个答案:

答案 0 :(得分:0)

原来,我需要像这样配置任务:

commandLine "./myProgram.sh", "${System.getProperty("argument")}"

请注意可执行文件名称中的./