Agregar dependencias en Apache Maven

La gestión de dependencias de un proyecto es una característica central de Maven que se utiliza para definir bibliotecas de las que depende un proyecto. Las dependencias se pueden especificar en el archivo pom.xml y Maven las descargará automáticamente a su repositorio Maven local.

Apache Maven es una herramienta de gestión de proyectos que utiliza el Project Object Model (POM) para gestionar la creación, los reportes y la documentación del proyecto.

Maven también tiene una función de ámbito de dependencia que permite definir el ámbito o alcance de las dependencias y reducir la cantidad de dependencias transitivas. Además, Maven permite definir dependencias externas, usar dependencias específicas del perfil y administrar dependencias en un proyecto multi módulo. En este artículo veremos cómo agregar dependencias en Apache Maven en unos pocos pasos.

Configurar dependencias en Apache Maven

El archivo pom.xml es un documento que contiene información sobre el proyecto y su configuración. Por lo general, se encuentra en la raíz de un proyecto de Maven y contiene el nombre del proyecto, la versión, las dependencias Maven, la configuración de compilación y las variables de entorno. De su estructura podemos destacar las siguientes secciones:

  • La sección <build> se usa para definir la configuración de compilación del proyecto, como la versión del compilador, el directorio de origen, el directorio de salida y los plugins que se usarán durante el proceso de compilación. Puede contener una sección <resources> para administrar recursos como imágenes y archivos de texto, y una sección <profiles> para adaptar el proceso de construcción a diferentes entornos.
  • La sección <dependencies> se usa para definir las dependencias de su proyecto. Estas dependencias pueden ser bibliotecas u otros proyectos de los que depende su proyecto. Cada dependencia se especifica con un elemento <dependency> que incluye groupId, artifactId y la versión de la dependencia. Esta sección también le permite especificar el scope o alcance que determina cuándo se debe incluir la dependencia en el proyecto. Los scopes disponibles incluyen:
    • compile: este es el ámbito predeterminado, que se utiliza si no se especifica ninguno. Las dependencias de compilación están disponibles en todos los classpaths.
    • provided: esto es muy parecido a compilar, pero indica que espera que el JDK o un contenedor lo proporcionen. Solo está disponible en el classpath de compilación, no es transitivo ni está empaquetado.
    • runtime: este scope indica que la dependencia no es necesaria para la compilación, pero sí para la ejecución. Estará disponible en tiempo de ejecución y en test, pero no estará disponible para compilación.
    • test: este scope indica que la dependencia no es necesaria para un uso normal de la aplicación y solo está disponible para las fases de compilación y ejecución de tests.
    • system: este scope es similar a provided, excepto que se debe proporcionar el JAR que lo contiene explícitamente. El artefacto siempre está disponible y no se busca en un repositorio.
    • import

1. Buscar la librería en el Repositorio Central

La mejor manera de buscar en el Repositorio Central de Maven es utilizar el sitio web del repositorio central de Maven en https://search.maven.org/. Este sitio web proporciona una interfaz de búsqueda fácil de usar, que le permite encontrar rápidamente los artefactos que está buscando. Además, el sitio web ofrece opciones de búsqueda avanzada, como buscar por nombre de clase, buscar por coordenadas, etc.

agregar-dependencias-en-apache-maven-search

2. Seleccionar la versión

En el listado resultante seleccionamos la versión que se ajuste a nuestras necesidades.

agregar-dependencias-en-apache-maven-results

3. Copiar la dependencia

La siguiente pantalla muestra los detalles de la dependencia seleccionada, en donde encontraremos opciones para descargar el jar y de copiar los datos de la dependencia en formato XML para agregar al POM de nuestro proyecto.

agregar-dependencias-en-apache-maven-copy

4. Agregar la dependencia al POM

Una vez que tenemos el XML con las coordenadas de la dependencia la podemos agregar al archivo POM de nuestro proyecto.

La dependencia se debe agregar dentro del elemento <dependencies>.

agregar-dependencias-en-apache-maven-pom

5. Descargar dependencias Maven y actualizar proyecto

Una vez que hemos configurado la dependencia en nuestro POM podemos hacer un build del proyecto, con lo cual se descargará la librería del Repositorio Central de Maven a nuestro repositorio local de Maven (si no se encontraba instalada en este último).

mvn clean package

Por último, nuestro proyecto de Eclipse aun estará desactualizado. Para actualizar simplemente lo podemos volver a generar con el comando:

mvn eclipse:eclipse

Puedes disponer de opciones avanzadas para gestión de dependencias utilizando Maven Dependency Plugin.

Conclusión

Como vimos en este artículo, agregar dependencias en Apache Maven a un archivo Maven POM (Project Object Model) es un proceso relativamente simple. Todo lo que necesita hacer es encontrar las coordenadas de la dependencia, lo que se puede hacer buscando en el sitio web del repositorio central de Maven y luego agregar la dependencia a su archivo POM usando la etiqueta <dependency>. Con esta información, puede agregar fácilmente todas las dependencias que necesita para su proyecto y comenzar a crear excelentes aplicaciones.


Te puede interesar

Maven – Crear un proyecto Java

En este artículo se explica el proceso completo para crear de un proyecto Java utilizando arquetipos de Maven.

Seguir leyendo →

Maven – Crear un proyecto web

En este artículo se explica como crear un proyecto web utilizando un arquetipo de Maven y a partir de este crear un proyecto JavaServer Faces.

Seguir leyendo →

Palabras reservadas en Java

Las palabras reservadas en Java son un componente crucial de la sintaxis del lenguaje para formar los bloques básicos del lenguaje.

Seguir leyendo →

Crear un arquetipo de Maven

Crear un arquetipo de Maven permite generar nuevos proyectos de similares caracteríticas a partir de una plantilla.

Seguir leyendo →