Понимание отличного синтаксиса в определении задачи Gradle

Я новичок в Gradle и Groovy и пытаюсь понять, что происходит на уровне Groovy, когда определена задача Gradle.

task hello  { 
   println "configuring task hello" 
   doLast {
     println "hello there" 
   }
}

Из книги "Gradle In Action" я узнал, чтоtask hello {} это действительно вызов кtask() метод заводнойProject интерфейс. На странице 77 показано, что наProject интерфейс

task(args: Map<String,?>, name:String)
task(args: Map<String,?>, name:String, c:Closure)
task(name: String)
task(name: String, c:Closure)

Я понимаю что{} это закрытие тела.

Что я не понимаю, так это как заводной интерпретироватьhello вtask hello { } в соответствии сhttps://stackoverflow.com/a/25592665/438319 есть отличный компилятор плагин, который конвертируетtask hello { } вtask('hello', { })

Мои вопросы:

Где я могу найти информацию о плагине Gradle Groovy Compiler, который выполняет преобразование?

Является ли утверждение, что скрипты Gradle являются Groovy программами технически некорректными, поскольку Gradle каким-то образом расширяет язык программирования Groovy?

Есть ли способ получитьgradle Команда для печати базового кода Groovy, который генерируется после запуска плагина компилятора?

Ответы на вопрос(1)

Ваш ответ на вопрос