Más sobre tareas

Las tareas pueden ser más complejas. Pueden tener propiedades y behaviours, con doLast como el comportamiento más importante. En los behaviours podemos meter código Java o Groovy.

Este curso ha sido marcado como anticuado y no está siendo revisado de forma activa. Es posible que la información pueda estar desactualizada o que los enlaces se hayan roto.

Las tareas en Gradle son mucho más que simples comandos que ejecutan código; son objetos con propiedades y comportamientos que podemos definir y manipular para adaptar su ejecución a nuestras necesidades. Cuando creamos una tarea, no solo le asignamos un nombre y un bloque de código, sino que podemos establecer variables internas que actúan como parámetros configurables, y también definir acciones específicas que se ejecutan en momentos determinados durante la vida de la tarea.

Para empezar, dentro de una tarea podemos declarar propiedades usando el objeto especial ext. Este objeto nos permite definir variables que quedan expuestas y accesibles desde otras tareas o desde el propio script de Gradle. Por ejemplo, podemos guardar el nombre del autor, el correo electrónico, la versión del proyecto o cualquier otro dato que queramos parametrizar y que pueda influir en el comportamiento de la tarea. Así, si definimos una tarea llamada olamundo con propiedades como nombre, correo y version, luego podemos acceder a ellas desde otra tarea simplemente referenciando olamundo.nombre, olamundo.correo, etc.

task olamundo {
    ext {
        nombre = 'Pepito'
        correo = 'pepito@pepito.com'
        version = '1.0'
    }
}

Luego, en otra tarea, podemos usar esas propiedades para personalizar la salida o la lógica:

task compilar {
    doLast {
        println "Compilando proyecto ${olamundo.nombre} ${olamundo.version}. Si hay problemas, avisad a ${olamundo.correo}."
    }
}

Además, si solo queremos definir una propiedad sin necesidad de agrupar muchas, podemos usar una forma más sencilla asignando directamente a ext:

task olamundo {
    ext.nombre = 'Pepito'
    ext.correo = 'pepito@pepito.com'
    ext.version = '1.0'
}

En cuanto a los comportamientos, la tarea puede ejecutar código en distintos momentos. El más común es doLast, que define una acción que se ejecuta al final de la tarea. Dentro de este bloque podemos escribir cualquier código Groovy o Java que necesitemos. Por ejemplo:

task holamundo {
    ext.proyecto = 'Mi Proyecto 1.0'

    doLast {
        println "Compilando proyecto ${proyecto}"
    }
}

Al ejecutar esta tarea, veremos el mensaje con el nombre del proyecto. También existe una forma abreviada para definir el comportamiento doLast usando el operador <<:

task compilar << {
    println "Compilando proyecto ${proyecto}"
}

Esto es equivalente a usar doLast, pero más conciso. Además, podemos definir el comportamiento fuera del bloque de la tarea, accediendo directamente a la tarea por su nombre y añadiendo el bloque doLast:

task holamundo

holamundo.doLast {
    println "Ejecutando tarea holamundo con proyecto ${holamundo.proyecto}"
}

Esta flexibilidad nos permite organizar el código de la forma que mejor se adapte a nuestro proyecto.

Por último, dentro de las tareas podemos usar código Groovy o Java sin restricciones. Podemos declarar variables de cualquier tipo, como cadenas o fechas, y usarlas para enriquecer la lógica de la tarea. Por ejemplo:

task holamundo {
    ext.proyecto = 'Hola Mundo'
    def ahora = new Date()

    doLast {
        println "Compilando proyecto ${proyecto} a las ${ahora.toString()}"
    }
}

Al ejecutar esta tarea, veremos un mensaje que incluye la fecha y hora actuales, demostrando que podemos integrar código Java directamente en nuestras tareas Gradle.

En definitiva, las tareas en Gradle son objetos potentes que combinan propiedades configurables y comportamientos ejecutables, y podemos definirlos de múltiples maneras para adaptarlos a nuestras necesidades. Además de doLast, existen otros comportamientos como doFirst y muchas más propiedades que podemos explorar para sacarle el máximo partido a la automatización de nuestros proyectos.

Lista de reproducción
  1. 1
    Instalar Gradle
    7 minutos
  2. 2
    Creando las primeras tareas
    7 minutos
  3. 3
    Más sobre tareas
    8 minutos
  4. 4
    Cómo usar Gradle con Java
    11 minutos
  5. 5
    Creando aplicaciones con Application
    3 minutos
  6. 6
    Dependencia entre tareas
    5 minutos
  7. 7
    Más métodos de las tareas
    9 minutos
  8. 8
    Ejecución condicional con onlyIf
    5 minutos
  9. 9
    finalizedBy
    2 minutos
  10. 10
    Tareas base de Gradle
    3 minutos
  11. 11
    Tarea Copy
    6 minutos
  12. 12
    Tarea Exec
    6 minutos
  13. 13
    Tarea Zip
    5 minutos
  14. 14
    Importar en IntelliJ IDEA
    6 minutos
  15. 15
    Importar en Eclipse
    5 minutos
  16. 16
    Importar en NetBeans
    4 minutos
  17. 17
    Dependencias con Maven
    11 minutos
  18. 18
    Qué aprender ahora
    5 minutos
  19. 19
    ¿Qué es Gradle?
    6 minutos