Dependencias con Maven

Cómo conectar nuestro proyecto con un repositorio de Maven para poder hacer que el proyecto dependa de otras librerías de terceros, y cómo agregarlas de forma sencilla.

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 en proyectos Java con Gradle, uno de los aspectos fundamentales que debemos dominar es la gestión de dependencias. No solemos escribir todo el código desde cero; en cambio, aprovechamos librerías ya existentes que nos facilitan la vida, desde la librería estándar de Java hasta frameworks y herramientas especializadas como LWJGL para juegos o Hibernate para acceso a bases de datos.

Para integrar estas librerías externas en nuestros proyectos, Gradle nos permite conectarnos a repositorios donde se almacenan estos paquetes. Maven Central es el repositorio más conocido y utilizado, funcionando como un gran almacén centralizado de archivos JAR que podemos incorporar fácilmente. Además, algunas organizaciones mantienen sus propios repositorios privados para compartir librerías internas.

La forma tradicional de añadir una librería podría ser descargar manualmente los JARs y agregarlos a nuestro proyecto, pero con Gradle y Maven Central esto se simplifica enormemente. Por ejemplo, si queremos usar LWJGL, solo tenemos que buscarlo en search.maven.org, elegir la versión que nos interesa y copiar la línea que Gradle nos proporciona para incluirla como dependencia.

En nuestro archivo build.gradle, primero indicamos dónde buscar estas librerías con la sección repositories, donde agregamos mavenCentral(). Esto le dice a Gradle que utilice el repositorio central de Maven para resolver dependencias. Luego, en la sección dependencies, especificamos las librerías que queremos usar. Por ejemplo, para LWJGL, añadimos algo así:

repositories {
    mavenCentral()
}

dependencies {
    compile 'org.lwjgl.lwjgl:lwjgl:3.2.3'
}

Aquí, compile indica que esta dependencia es necesaria para compilar el proyecto. Gradle se encargará de descargar automáticamente el JAR y todas las dependencias que este requiera, incluyendo las librerías nativas para diferentes sistemas operativos, sin que tengamos que preocuparnos por ello.

Una vez añadida la dependencia, si estamos usando un IDE compatible o incluso un editor de texto simple, solo tenemos que actualizar el proyecto para que Gradle descargue y configure todo. Así, podemos empezar a usar las clases y métodos de la librería inmediatamente, con autocompletado y documentación disponible.

Es importante entender que existen distintos tipos de dependencias según cuándo se necesiten. compile es para librerías necesarias en la compilación. runtime es para aquellas que solo se requieren al ejecutar la aplicación, como los drivers JDBC para bases de datos, que no son necesarios para compilar pero sí para correr. Para pruebas unitarias, usamos testCompile para librerías que se necesitan al compilar los tests, y testRuntime para las que solo se requieren al ejecutar esos tests.

Además, hay dos formas de declarar las dependencias en Gradle. La forma corta, que es la más común y sencilla, consiste en escribir el tipo de dependencia seguido de una cadena con el grupo, artefacto y versión separados por dos puntos:

compile 'org.lwjgl.lwjgl:lwjgl:3.2.3'

La forma larga es más explícita y separa cada parte en un bloque con claves y valores:

compile group: 'org.lwjgl.lwjgl', name: 'lwjgl', version: '3.2.3'

Ambas formas son compatibles y podemos usar la que nos resulte más cómoda o que nos encontremos en ejemplos y documentación.

En definitiva, gestionar dependencias con Gradle y Maven Central nos permite integrar librerías externas de forma rápida, sencilla y organizada, facilitando el desarrollo de aplicaciones Java complejas sin tener que preocuparnos por descargar y configurar manualmente cada componente.

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