¿Cuáles son las definiciones de tareas de gradle en lenguaje maravilloso?

Soy completamente nuevo en gradle y groovy y tengo problemas para encontrar información sobre lo que en realidad está a continuación en el lenguaje maravilloso

task myTask(dependsOn: 'compile') << {
   println 'I am not affected'
}

AFAIK the{...} parte es un cierre que parece pasarse a lo que se haya definido antes<<.

Estask myTask() una llamada a un constructor?

¿Y qué pasa con el colon que parece un parámetro?

Que hace<< ¿hacer? ¿Es un operador que fue sobrecargado por gradle o es una maravilla estándar?

Respuestas a la pregunta(1)

Su respuesta a la pregunta