2016-08-25 111 views
0

我有一个应该运行shell脚本的任务。在摇篮中,我定义如下:Gradle没有执行我的任务

defaultTasks 'renaming' 
... some other stuff goes here ... 
task renaming(type: Exec) { 
    commandLine 'sh', 'src/main/bin/rename.sh' 
} 

我有我的src/main/bin中模块下的shell脚本/
但是,没有得到运行(用于测试目的,壳创建一个目录称为“asfasf”)。我怎样才能解决这个问题?

+0

您是否尝试了像/Users/you/AndroidStudioProjects/yourProject/app/src/main/bin/rename.sh这样的完整路径? – HendraWD

+0

该项目将被编译在不同的机器上,所以我不知道如何在这种情况下得到完整的路径。 –

+0

您是否尝试手动运行脚本?可能有错误 – minas

回答

0

当您给sh一个相对路径时,它会针对Exec任务的工作目录进行解析。设置Exec任务的工作目录或使用file('src/main/bin/rename.sh')作为commandLine的第二个参数。

+0

使用commandLine'sh',file('src/main/build/rename.sh')仍然没有任何作用。 –

+0

什么是“无”意思?它没有执行?据说它是最新的?它会产生一个错误?什么?你正在运行的是什么命令?添加'-i'还是添加'-d'会添加更多帮助您查看错误的信息?如果不是,则将'-i'的输出添加到您的问题中。 – Vampire

+0

“没有”,因为编译得很好,但似乎根本没有运行脚本。 shell脚本只运行这个命令:mkdir -p“asfasf”。从终端运行脚本工作正常,所以我假设我在Gradle中声明任务的方式是错误的,或者它只是没有找到正确的路径。 –