Cómo usar Gradle con Java

Con el plugin java tenemos tareas ya hechas que podemos usar para compilar proyectos de Java. Es necesario conocer algunas propiedades extra que necesitamos para poder compilar correctamente.

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.

Cuando trabajamos con proyectos Java, Gradle se presenta como una herramienta muy versátil y práctica para compilar y gestionar nuestro código. Para empezar, es fundamental entender la estructura de directorios que Gradle utiliza, la cual es compatible con la que conocemos de Maven. En primer lugar, creamos una carpeta llamada src, que contendrá todo el código fuente del proyecto. Dentro de src, definimos una carpeta main para el código principal, y dentro de esta, una carpeta java donde colocaremos nuestros archivos .java. Esta estructura nos permite organizar el código de manera clara y escalable, pudiendo añadir otras carpetas como test para pruebas unitarias o resources para archivos adicionales.

Por ejemplo, si creamos un archivo HolaMundo.java dentro de src/main/java, podemos escribir una clase sencilla que imprima un mensaje en pantalla:

public class HolaMundo {
    public static void main(String[] args) {
        System.out.println("Hola Mundo");
    }
}

Para indicarle a Gradle que queremos trabajar con código Java, simplemente aplicamos el plugin de Java en nuestro archivo build.gradle con la línea:

apply plugin: 'java'

Este plugin nos proporciona una serie de tareas útiles, como build para compilar el proyecto, clean para limpiar archivos generados, javadoc para generar documentación y test para ejecutar pruebas unitarias. Al ejecutar gradle build, Gradle compila nuestro código y genera un archivo .jar dentro de la carpeta build/libs, además de colocar las clases compiladas en build/classes/main.

Para ejecutar nuestra clase principal, podemos usar el comando de Java especificando el classpath:

java -cp build/classes/main HolaMundo

Esto mostrará el mensaje Hola Mundo en la consola.

Además, Gradle nos permite configurar propiedades importantes para nuestro proyecto Java. Por ejemplo, sourceCompatibility define la versión de Java con la que queremos que se compile el código, lo que es útil para asegurar compatibilidad con versiones específicas del JDK. También podemos definir la versión del proyecto con la propiedad version. Estas propiedades se declaran de forma global en el archivo build.gradle:

sourceCompatibility = 1.8
version = '1.0'

Una característica muy útil es la personalización del archivo JAR que genera Gradle. Por defecto, el archivo JAR no incluye información sobre cuál es la clase principal que debe ejecutarse, lo que impide que podamos lanzar el JAR directamente con java -jar. Para solucionar esto, podemos modificar la configuración del JAR dentro de build.gradle para añadir atributos al manifest, especificando la clase principal:

jar {
    manifest {
        attributes(
            'Main-Class': 'HolaMundo'
        )
    }
}

Con esta configuración, al ejecutar gradle build, el archivo JAR generado incluirá la información necesaria para que podamos ejecutarlo directamente:

java -jar build/libs/tuProyecto-1.0.jar

Y veremos el mensaje Hola Mundo en la consola.

Además, podemos añadir más atributos personalizados al manifest si lo deseamos, simplemente agregándolos dentro del bloque attributes separados por comas.

En definitiva, con Gradle y el plugin de Java podemos estructurar nuestro proyecto de forma estándar, compilarlo fácilmente, definir la versión de Java y del proyecto, y crear archivos JAR ejecutables configurando el manifest adecuadamente. Esto nos facilita mucho el desarrollo y la distribución de aplicaciones Java. Para mejorar aún más la experiencia, existe la opción de usar el plugin application, que simplifica la ejecución y pruebas rápidas, pero eso es tema para explorar más adelante.

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