Cómo Maven resuelve automáticamente las dependencias de las bibliotecas jar.
Fecha de publicación:
Actualizado:
Artículos técnicos > Cómo Maven resuelve automáticamente las dependencias de las bibliotecas jar.
Estado 2026 y uso seguro
Conclusión: Maven no descubre archivos JAR arbitrarios por nombre de archivo. Resuelve las coordenadas declaradas, descarga el artefacto POM, sigue las dependencias de ese POM, aplica el alcance y las reglas opcionales, y utiliza la mediación de dependencia cuando varias rutas solicitan versiones diferentes.
Qué aprenderás
- Cómo participan en la resolución los repositorios locales, centrales, espejo y privados.
- Por qué el POM de una dependencia (no el JAR en sí) describe la mayoría de los requisitos transitivos.
- Cómo inspeccionar el gráfico efectivo antes de anular una versión.
Para quién es: usuarios de Maven que desean comprender de dónde provienen los artefactos descargados y por qué aparecen bibliotecas adicionales.
Situación en 2026: Las coordenadas de puntos de interés de Apache más antiguas que aparecen a continuación siguen siendo útiles como ejemplo histórico, no como recomendación de versión. Utilice dependencias admitidas actualmente, repositorios HTTPS confiables, controles de suma de comprobación/firma cuando estén disponibles y una política de actualización de dependencias.
Nota de seguridad: Los comandos y ejemplos de configuración del artículo original no se han vuelto a ejecutar en un entorno de producción actual. Verifique las versiones compatibles, las copias de seguridad, los controles de acceso y los pasos de reversión en un entorno de prueba independiente antes de aplicarlos.
Fuentes primarias oficiales
Resumen
Maven descarga archivos JAR de repositorios remotos. Esta sección explica el proceso de resolución.
El siguiente artículo ofrece una introducción breve a Maven antes de entrar en la resolución de dependencias.
¿Qué es Maven y qué hace Maven?
Índice de contenidos
1. Cómo resuelve Maven las dependencias JAR
Al declarar un JAR en pom.xml, Maven descarga el artefacto y resuelve sus dependencias transitivas. La sección siguiente explica este mecanismo.
1-1. Declarar dependencias en pom.xml
Maven resuelve los artefactos a partir de las coordenadas declaradas en pom.xml. Por ejemplo, Apache POI 3.17, una biblioteca para procesar archivos de Microsoft Office como Excel, se declara así:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
Maven descarga poi-3.17.jar y utiliza su POM para resolver también las dependencias transitivas necesarias. En proyectos nuevos conviene elegir una versión que siga teniendo soporte y comprobar su compatibilidad.
1-2. Descargar artefactos de repositorios
El diagrama siguiente resume el flujo.
Maven descarga por defecto los artefactos públicos de Central Repository:
https://repo1.maven.org/maven2/
El siguiente índice de terceros ayuda a localizar artefactos, aunque la configuración debe basarse en la documentación oficial del proyecto o de la organización.
https://mvnrepository.com/repos
La primera resolución guarda los artefactos en el repositorio local. En Windows, la ubicación predeterminada está en «.m2\repository» dentro del perfil del usuario, no en la raíz de «.m2».
Se pueden añadir repositorios remotos en pom.xml cuando sean necesarios. Para mantener builds reproducibles y seguros, deben usarse únicamente fuentes de confianza.
<repositories>
<repository>
<id>sonatype-nexus-snapshots</id>
<name>Sonatype Nexus Snapshots</name>
<url>https://oss.sonatype.org/content/repositories/snapshots</url>
<releases>
<enabled>false</enabled>
</releases>
<snapshots>
</snapshots>
</repository>
</repositories>
1-3. Resolver dependencias transitivas
poi-3.17.jar necesita, entre otras bibliotecas, commons-collections4-4.1.jar. Maven lee los metadatos POM del directorio de esa versión y construye con ellos el grafo de dependencias:
https://repo1.maven.org/maven2/org/apache/poi/poi/3.17/
poi-3.17.pom declara las dependencias directas. Maven lee ese POM junto con el artefacto principal y resuelve de forma recursiva los artefactos necesarios. Los conflictos de versión se deciden según las reglas de mediación de dependencias de Maven.
2. Resumen
Maven construye un grafo con las coordenadas y declaraciones de dependencia de los POM, y almacena en el repositorio local los artefactos descargados.
