Entendendo a sintaxe groovy em uma definição de tarefa gradle
Eu sou novo no Gradle e no Groovy e estou tentando entender o que está acontecendo no nível do groovy quando uma tarefa do gradle é definida.
task hello {
println "configuring task hello"
doLast {
println "hello there"
}
}
Ao ler o livro "Gradle In Action", sei que otask hello {}
é realmente uma chamada para otask()
método do groovyProject
interface. Na página 77, mostra que existem 4 métodos chamados tarefa noProject
interface
task(args: Map<String,?>, name:String)
task(args: Map<String,?>, name:String, c:Closure)
task(name: String)
task(name: String, c:Closure)
Eu entendo que o{}
é o corpo de fechamento.
O que eu não entendo é como o groovy interpretahello
notask hello { }
de acordo comhttps://stackoverflow.com/a/25592665/438319 existe um plug-in compilador groovy que convertetask hello { }
para dentrotask('hello', { })
Minhas perguntas:
Onde posso encontrar informações sobre o plug-in do Gradle Groovy Compiler que faz a conversão?
A alegação de que os scripts Gradle são programas groovy tecnicamente incorretos, já que o gradle de alguma forma estende a linguagem de programação Groovy?
Existe uma maneira de obter ogradle
comando para imprimir o código groovy base que é gerado após a execução do plug-in do compilador?