🇺🇦 Слава Україні! Consulta como ayudar a Ucrania y pide a tu gobierno que se movilice en stopputin.net.

Automatizando con Gradle

finalizedBy

Cómo decir con finalizedBy que tras una tarea se invoque automáticamente otra tarea. Otra forma de establecer el orden en el que queremos que las tareas organicen su orden de ejecución.

Fecha de emisión:

Duración: 2:14

Ver en YouTube

Notas del episodio

finalizedBy permite señalizarle a Gradle que cuando una tarea finalice de forma satisfactoria, se debe ejecutar automáticamente otra tarea. En el siguiente ejemplo, tenemos dos tareas: lint y validate. Por simplificar, vamos a reducir el código de sus tareas a un println:

task lint << {
  println "Linteando el código..."
}

task validate << {
  println "Validando que el código esté bien..."
}

Si quisiésemos que al invocar la tarea lint, la tarea validate se invocase a continuación, podríamos señalar la dependencia entre ambas tareas mediante un finalizedBy:

lint.finalizedBy validate

De este modo, podríamos tener una tarea mayor dividida en pequeñas subtareas, y mediante bloques finalizedBy ir estableciendo la conexión entre cada una de estas subtareas para que se vayan encadenando una tras otra. Por ejemplo, si encadenamos la segunda tarea con una tercera tarea, podemos fabricar una cadena más larga.

task lintJava << {
  println "Estoy validando mi Java"
}

task lintXML << {
  println "Estoy validando mi XML"
}

task lintProperties << {
  println "Estoy validando mis properties"
}

lintJava.finalizedBy lintXML
lintXML.finalizedBy lintProperties