Подтвердить что ты не робот

Запустить команду оболочки в 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", чтобы я мог называть его более одного раза? Нет необходимости иметь его в качестве отдельной задачи.

4b9b3361

Ответ 1

Вы можете сделать что-то вроде следующего:

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

task doIt {
    doLast {
        doMyThing("/tmp/foo")
        doMyThing("/tmp/gee")
    }
}

exec здесь не задача, это метод Project.exec().