Запустить команду оболочки в 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();
}
С этим я подумал, что могу запустить "myTask" с разными параметрами при запуске "doIt". Но только в первый раз script выполняется, поскольку gradle заботится о том, чтобы задача выполнялась только один раз.
Как я могу переписать "myTask", чтобы я мог называть его более одного раза? Нет необходимости иметь его в качестве отдельной задачи.
Ответы
Ответ 1
Вы можете сделать что-то вроде следующего:
def doMyThing(String target) {
exec {
executable "something.sh"
args "-t", target
}
}
task doIt {
doLast {
doMyThing("/tmp/foo")
doMyThing("/tmp/gee")
}
}
exec
здесь не задача, это метод Project.exec()
.