Gradle es una herramienta de construcción moderna y flexible que se utiliza ampliamente en el ecosistema de Groovy y Java. En este módulo, aprenderás cómo configurar y utilizar Gradle para automatizar tareas de construcción, pruebas y despliegue de tus proyectos Groovy.

¿Qué es Gradle?

Gradle es una herramienta de automatización de construcción que combina las mejores características de Ant y Maven. Utiliza un lenguaje de dominio específico (DSL) basado en Groovy para describir la configuración del proyecto y las tareas de construcción.

Características Clave de Gradle

  • Flexibilidad: Permite personalizar y extender el proceso de construcción.
  • Eficiencia: Soporta la construcción incremental y la ejecución paralela de tareas.
  • Integración: Se integra fácilmente con otras herramientas y tecnologías como Jenkins, Docker, y más.
  • Soporte para múltiples lenguajes: Aunque es popular en el ecosistema Java, también soporta otros lenguajes como Kotlin, Scala, y C++.

Configuración del Entorno

Antes de comenzar a usar Gradle, necesitas instalarlo en tu sistema.

Instalación de Gradle

  1. Descarga: Ve a la página de descargas de Gradle y descarga la última versión.

  2. Instalación:

    • Windows: Extrae el archivo ZIP descargado y agrega la ruta bin de Gradle a la variable de entorno PATH.
    • macOS/Linux: Extrae el archivo ZIP y agrega la ruta bin de Gradle a tu archivo de configuración de shell (.bashrc, .zshrc, etc.).
  3. Verificación: Abre una terminal y ejecuta el siguiente comando para verificar la instalación:

    gradle -v
    

Estructura de un Proyecto Gradle

Un proyecto Gradle típico tiene la siguiente estructura:

my-groovy-project/
├── build.gradle
├── settings.gradle
├── src/
│   ├── main/
│   │   ├── groovy/
│   │   └── resources/
│   └── test/
│       ├── groovy/
│       └── resources/
└── gradle/
    └── wrapper/

Archivos Clave

  • build.gradle: Archivo principal de configuración del proyecto.
  • settings.gradle: Archivo de configuración para proyectos multi-módulo.
  • src/: Directorio que contiene el código fuente y los recursos.

Primer Script de Gradle

Vamos a crear un proyecto simple para entender cómo funciona Gradle.

Paso 1: Crear el Proyecto

Crea un nuevo directorio para tu proyecto y navega a él:

mkdir my-groovy-project
cd my-groovy-project

Paso 2: Crear el Archivo build.gradle

Crea un archivo llamado build.gradle en el directorio raíz del proyecto con el siguiente contenido:

plugins {
    id 'groovy'
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.codehaus.groovy:groovy-all:3.0.9'
    testImplementation 'junit:junit:4.13.2'
}

task hello {
    doLast {
        println 'Hello, Gradle!'
    }
}

Explicación del Script

  • plugins: Aplica el plugin de Groovy.
  • repositories: Define los repositorios donde Gradle buscará las dependencias.
  • dependencies: Lista las dependencias del proyecto.
  • task hello: Define una tarea personalizada que imprime "Hello, Gradle!".

Paso 3: Ejecutar el Script

Ejecuta la tarea hello desde la terminal:

gradle hello

Deberías ver la salida:

> Task :hello
Hello, Gradle!

Ejemplo Práctico: Compilación y Ejecución de Código Groovy

Vamos a extender nuestro proyecto para compilar y ejecutar un archivo Groovy.

Paso 1: Crear la Estructura de Directorios

Crea la estructura de directorios para el código fuente:

mkdir -p src/main/groovy

Paso 2: Crear un Archivo Groovy

Crea un archivo llamado HelloWorld.groovy en src/main/groovy con el siguiente contenido:

class HelloWorld {
    static void main(String[] args) {
        println 'Hello, Groovy!'
    }
}

Paso 3: Compilar y Ejecutar

Ejecuta la tarea run para compilar y ejecutar el código:

gradle run

Deberías ver la salida:

> Task :run
Hello, Groovy!

Ejercicios Prácticos

Ejercicio 1: Crear una Tarea Personalizada

Crea una tarea personalizada en build.gradle que imprima la fecha y hora actual.

Solución:

task printDate {
    doLast {
        println "Current date and time: ${new Date()}"
    }
}

Ejecuta la tarea:

gradle printDate

Ejercicio 2: Añadir una Dependencia

Añade la dependencia commons-lang3 de Apache y utiliza una de sus clases en tu código Groovy.

Solución:

  1. Añade la dependencia en build.gradle:

    dependencies {
        implementation 'org.codehaus.groovy:groovy-all:3.0.9'
        implementation 'org.apache.commons:commons-lang3:3.12.0'
        testImplementation 'junit:junit:4.13.2'
    }
    
  2. Modifica HelloWorld.groovy para usar StringUtils de commons-lang3:

    import org.apache.commons.lang3.StringUtils
    
    class HelloWorld {
        static void main(String[] args) {
            println 'Hello, Groovy!'
            println StringUtils.capitalize('hello, commons-lang3!')
        }
    }
    
  3. Ejecuta la tarea run:

    gradle run
    

Deberías ver la salida:

> Task :run
Hello, Groovy!
Hello, commons-lang3!

Conclusión

En esta sección, has aprendido los conceptos básicos de Gradle, cómo configurar un proyecto y cómo crear y ejecutar tareas personalizadas. Gradle es una herramienta poderosa que puede simplificar y automatizar muchas tareas en el desarrollo de software. En los próximos módulos, exploraremos más características avanzadas y cómo integrarlas en tus proyectos Groovy.

© Copyright 2024. Todos los derechos reservados