我在项目中配置了这个简单的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。
谢谢。
答案 0 :(得分:0)
原来,我需要像这样配置任务:
commandLine "./myProgram.sh", "${System.getProperty("argument")}"
请注意可执行文件名称中的./
。