Я понимаю, что DSL
task doTask { logger.info "some text" }
на самом деле вызовет задачу метода (String, Closure) для объекта делегата Project.Это более или менее короткая рука для
task("doTaks", {logger.info("some text")})
Все хорошо.Но все усложняется, когда я пытаюсь понять синтаксис Gradle DSL, который я видел в сторонних скриптах сборки:
task doTask (dependsOn: 'otherTask'){logger.info "some text"}
Я полагаю, что groovy создаст карту из (depenon: 'otherTask'), ичто каким-то образом будет вызван метод Project
task(Map args, String name, Closure config)
.Но как эти дополнительные круглые скобки вступают в игру, почему они необходимы, как Groovy выясняет, чего мы хотим здесь?Синтаксис выглядит совершенно нелогичным для меня с минимальными навыками.Я бы никогда не подумал, что мне нужно сделать так, чтобы это работало.
Итак, вот в чем вопрос: как groovy выясняет, что делать с этой командой:
task doTask (dependsOn: 'otherTask'){ // some code }