Maven: dependency management and building in Java
What the pom.xml is, how to add libraries and what each lifecycle phase does. With a dependency generator and a pom explorer.
Maven resuelve dos problemas: traer librerías (y las librerías de esas
librerías) y construir tu proyecto con un comando. Todo se describe en un fichero:
pom.xml.
Anatomy of the pom.xml
Pulsa cada parte para ver qué hace.
<project>
<groupId>es.programandoweb</groupId>
<artifactId>mi-app</artifactId>
<version>1.0.0</version>
<properties>
<maven.compiler.release>21</maven.compiler.release>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency> ... </dependency>
</dependencies>
<build>
<plugins> ... </plugins>
</build>
</project>
Dependency generator
Marca las librerías que quieras y copia el bloque <dependencies> resultante en tu pom.
<!-- marca alguna librería arriba -->
<dependency> listo.Lifecycle
Cada fase ejecuta también todas las anteriores. Pulsa una para ver qué pasa.
Maven vs Gradle
| Maven | Gradle | |
|---|---|---|
| Configuración | XML (pom.xml) | Groovy o Kotlin (build.gradle) |
| Curva de aprendizaje | Más suave, muy estándar | Más flexible, más que aprender |
| Velocidad | Buena | Mejor (caché e incremental) |
| Dominante en | Empresas, Spring tradicional | Android, proyectos nuevos |
Check what you've learned
mvn package, ¿se ejecutan los tests?pom.xml sirve para…