I'm very enthusiastic about Groovy, but have just started using it very recently and would like to understand Gradle from language syntax POV as well.
My example is about Gradle task:
task hello(type: GreetingTask)
class GreetingTask extends DefaultTask {
@TaskAction
def greet() {
println 'hello from GreetingTask'
}
}
task
method accepts a String name and a Closure. How can hello(type: GreetingTask)
be a String out of a sudden? If type
is a named parameter, what does GreetingTask
mean? Is it a shortcut for GreetingTask.class
? How come hello
function/closure returns a String?