在gradle中运行shell命令但不在任务内部运行

Mar*_*cel 19 shell gradle build.gradle

我现在拥有的是:

task myTask (type : Exec) {
   executable "something.sh"
   ... (a lot of other things)
   args "-t"
   args ext.target
}

task doIt {
   myTask.ext.target = "/tmp/foo"
   myTask.execute();

   myTask.ext.target = "/tmp/gee"
   myTask.execute();
}
Run Code Online (Sandbox Code Playgroud)

有了这个,我想当我开始"doIt"时,我可以用不同的参数运行"myTask".但只是第一次执行脚本,因为gradle会注意一个任务只运行一次.如何重写"myTask"以便我可以多次调用它?没有必要将它作为一项单独的任务.

Oli*_*rth 32

您可以执行以下操作:

def doMyThing(String target) {
    exec {
        executable "something.sh"
        args "-t", target
    }
}

task doIt {
    doLast {
        doMyThing("/tmp/foo")
        doMyThing("/tmp/gee")
    }
}
Run Code Online (Sandbox Code Playgroud)

exec这里不是一个任务,它的Project.exec()方法.