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](https://jcodepoint.com/wp-content/uploads/2023/02/search-1.jpg)
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](https://jcodepoint.com/wp-content/uploads/2023/02/search-2-1024x434.jpg)
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](https://jcodepoint.com/wp-content/uploads/2023/02/search-4.jpg)
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](https://jcodepoint.com/wp-content/uploads/2023/02/pom.jpg)
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.