Objetivo del tema
En este tema comprenderás cómo Apache Maven organiza tareas en ciclos de vida, qué fases componen el flujo principal, cuáles son los plugins asociados por defecto y cómo ejecutar fases específicas incluyendo los ciclos de limpieza y generación de sitios.
Maven define tres ciclos de vida principales: default, clean y site. El ciclo default cubre la construcción del artefacto y está compuesto por fases encadenadas. Invocar una fase ejecuta implícitamente todas las anteriores.
Fase | Propósito |
---|---|
validate | Verifica que el proyecto esté correcto y que existan los recursos necesarios. |
compile | Compila el código fuente en src/main/java . |
test | Ejecuta pruebas definidas en src/test/java . |
package | Empaqueta el resultado (JAR, WAR, etc.) según la configuración del POM. |
verify | Ejecuta verificaciones adicionales (por ejemplo, integración o chequeos de calidad). |
install | Instala el artefacto en el repositorio local ~/.m2/repository . |
deploy | Publica el artefacto en un repositorio remoto para usuarios finales. |
Comprender estas fases ayuda a elegir la invocación correcta según la acción deseada y evita tareas innecesarias.
Maven ejecuta plugins predefinidos en cada fase; este comportamiento se conoce como mapeo de objetivo a fase. El listado oficial puede consultarse en la documentación del ciclo de vida.
maven-compiler-plugin
ejecuta el objetivo compile
durante la fase compile.maven-surefire-plugin
ejecuta pruebas unitarias en la fase test.maven-jar-plugin
maneja el empaquetado de JARs en la fase package.maven-install-plugin
instala artefactos en la fase install.maven-deploy-plugin
publica artefactos durante la fase deploy.Si necesitas alterar el flujo (por ejemplo, reemplazar Surefire por maven-failsafe-plugin
), configúralo dentro de <build>
para cambiar el objetivo enlazado a la fase.
Puedes ejecutar una fase concreta utilizando la sintaxis mvn <fase>
. Maven resolverá todas las fases previas del mismo ciclo.
mvn package
mvn verify
mvn deploy
mvn package
compila, prueba y empaqueta el artefacto.mvn verify
agrega verificaciones adicionales antes de instalar o desplegar.mvn deploy
ejecuta todo el ciclo, incluyendo la publicación en repositorios remotos.Para objetivos aislados (como limpiar dependencias o generar reportes) puedes invocar directamente un objetivo de plugin: mvn dependency:purge-local-repository
, mvn surefire:test
, etc.
El ciclo clean elimina artefactos generados en compilaciones previas. Incluye las fases pre-clean, clean y post-clean, generalmente manejadas por maven-clean-plugin
.
mvn clean
target
, garantizando compilaciones limpias.mvn clean package
.Ejecutar mvn clean
antes de distribuciones o pruebas críticas evita usar artefactos obsoletos.
El ciclo site genera documentación del proyecto en formato HTML, incluyendo informes de dependencias, tests y configuración. La fase principal, site, está asociada al maven-site-plugin
.
mvn site
mvn site:deploy
mvn site
crea el sitio en target/site
utilizando reportes habilitados.mvn site:deploy
publica dichos reportes en un servidor definido en el POM.site.xml
y el directorio src/site
.Generar sitios de forma periódica facilita la revisión de calidad, cobertura y dependencias por parte de todo el equipo.
El ciclo de vida de Maven organiza la construcción en fases coherentes, respaldadas por plugins que automatizan tareas como compilar, probar, empaquetar y publicar. Comprender cómo ejecutar fases específicas y aprovechar los ciclos clean y site permite crear pipelines reproducibles y documentar el estado del proyecto continuamente.