Haciendo del Desarrollo y la Arquitectura Web, ciencia y pasión.

Opciones de Gradle para Java y Kotlin

Explicación de Gradle para Java y Kotlin

Gradle es un sistema de construcción automatizado y flexible que se utiliza ampliamente en proyectos Java (y otros lenguajes como Kotlin, Groovy, etc.). Permite gestionar las dependencias del proyecto, compilar el código fuente, ejecutar pruebas, empaquetar aplicaciones y realizar otras tareas relacionadas con el ciclo de vida del desarrollo de software.

Gradle utiliza un lenguaje de scripting basado en Groovy o Kotlin DSL para definir las tareas y la configuración del proyecto. Esto lo hace más flexible y potente en comparación con herramientas anteriores como Maven o Ant.

Listado de opciones comunes de Gradle para Java

Comandos básicos

  • gradle tasks: Muestra una lista de todas las tareas disponibles en el proyecto.
  • gradle build: Compila el código fuente, ejecuta las pruebas y genera los artefactos finales (por ejemplo, un archivo .jar).
  • gradle clean: Elimina los archivos generados previamente durante la construcción del proyecto (limpia el directorio build).
  • gradle assemble: Compila el código fuente y genera los artefactos sin ejecutar las pruebas.
  • gradle test: Ejecuta las pruebas unitarias del proyecto.
  • gradle check: Ejecuta todas las verificaciones del proyecto, incluyendo las pruebas.
  • gradle run: Ejecuta la aplicación si el proyecto incluye un plugin de aplicación ejecutable (como application).

Gestión de dependencias

  • gradle dependencies: Muestra un árbol de dependencias del proyecto, mostrando todas las bibliotecas utilizadas y sus versiones.
  • gradle dependencyInsight --dependency : Proporciona información detallada sobre una dependencia específica, incluyendo conflictos de versión.
  • gradle build --refresh-dependencies: Obliga a Gradle a descargar nuevamente todas las dependencias desde los repositorios remotos.

Compilación y empaquetado

  • gradle compileJava: Compila solo el código fuente Java.
  • gradle jar: Genera un archivo .jar con el código compilado.
  • gradle bootJar (si se usa Spring Boot): Genera un archivo .jar ejecutable compatible con Spring Boot.
  • gradle war: Genera un archivo .war para desplegar en servidores de aplicaciones.

Plugins específicos

  • gradle init: Inicializa un nuevo proyecto Gradle, permitiendo seleccionar el tipo de proyecto (Java, Kotlin, etc.).
  • gradle wrapper: Genera el script del Wrapper de Gradle (gradlew), que permite ejecutar Gradle sin necesidad de instalarlo globalmente.
  • gradle sonarqube: Ejecuta análisis de calidad de código utilizando SonarQube (requiere el plugin de SonarQube).
  • gradle javadoc: Genera la documentación Javadoc del proyecto.

Opciones avanzadas

  • gradle --info: Muestra información detallada sobre la ejecución de las tareas.
  • gradle --debug: Habilita el modo de depuración para obtener registros más detallados.
  • gradle --profile: Genera un informe de rendimiento de la construcción, útil para identificar cuellos de botella.
  • gradle --offline: Ejecuta Gradle en modo fuera de línea, utilizando solo las dependencias ya descargadas.
  • gradle --continue: Continúa ejecutando las tareas incluso si alguna falla.

Tareas personalizadas

Puedes definir tus propias tareas en el archivo build.gradle. Por ejemplo:

task hello {
    doLast {
        println '¡Hola, mundo!'
    }
}
    

Este comando se ejecuta con:

gradle hello
    

Ejemplo de archivo build.gradle básico para un proyecto Java

plugins {
    id 'java'
}

repositories {
    mavenCentral()
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter:3.0.0'
    testImplementation 'junit:junit:4.13.2'
}

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(17)
    }
}
    

Resumiendo

Gradle es una herramienta poderosa y flexible para gestionar proyectos Java. Su capacidad para personalizar tareas y manejar dependencias de manera eficiente lo convierte en una opción popular entre desarrolladores. Los comandos y opciones mencionados anteriormente son solo una parte de lo que Gradle puede hacer; explorar su documentación oficial te permitirá aprovechar al máximo sus capacidades.