5.1 Lista de fases del proyecto

Finalmente, llegamos al montaje del proyecto. Y entonces te sorprenderás un poco. Bueno, o fuertemente, como resulta. Maven ha revisado su enfoque para construir un proyecto. Y ahora te convencerás de ello.

Todo el montaje del proyecto se dividió en fases, cuya descripción daré en la siguiente tabla:

Orden Fase
1 validar comprueba la exactitud de la metainformación sobre el proyecto
2 compilar compila fuentes
3 prueba ejecuta las pruebas de clase del paso anterior
4 paquete empaqueta las clases compiladas en un nuevo artefacto: jar, war, zip, ...
5 verificar comprueba la corrección del artefacto y la satisfacción de los requisitos de calidad
6 instalar pone el artefacto en el repositorio local
7 desplegar carga un artefacto a un servidor de producción o repositorio remoto

Al mismo tiempo, los pasos son claramente secuenciales . Si le dice a Maven que ejecute el comando del paquete, primero ejecutará las fases de validación, compilación y prueba y solo luego el paquete.

En principio, no hay nada nuevo aquí, excepto que hay fases separadas para el control de calidad: validar, probar, verificar. Y hasta dos fases para implementar el ensamblaje: instalar e implementar.

Para iniciar una fase específica, basta con escribir el comando de fase maven . Por ejemplo, para compilar, debe ejecutar el comando del paquete maven . Etc.

Intellij IDEA es excelente para trabajar con estas fases y tiene un menú especial a la derecha para estos fines:

fase experta

Aquí, además de las conocidas fases, IDEA muestra 2 comandos más: limpiar y sitio . clean se usa para borrar completamente la carpeta de destino, y el sitio puede crear la documentación del proyecto.

5.2 Construyendo un proyecto

Si desea compilar el proyecto, debe ejecutar la fase de compilación. Esto se puede hacer usando la línea de comando: mvn compile o a través de la interfaz de IDEA haciendo clic en el elemento de compilación .

Después de eso, Maven comenzará a construir el proyecto y verá un registro del proceso de construcción similar a este:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.742 s
[INFO] Finished at: 2016-09-19T22:41:26+04:00
[INFO] Final Memory: 7M/18M
[INFO] ------------------------------------------------------------------------

Si algo salió mal, el registro se verá así:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.0:compile (default-compile) on project demo: Fatal error compiling: invalid target release: 11 -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible sliutions, please read the flilowing articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException 

Habrá mucha información útil en el registro, con el tiempo aprenderá a comprenderla y apreciarla.

5.3 Ciclos de trabajo

Todos los comandos maven se dividen en tres grupos: ciclos de vida. Se denominan ciclos de vida porque especifican el orden de las fases que se ejecutan durante una compilación o un ciclo de vida particular porque no todas las actividades de Maven son compilaciones.

Hay tres ciclos de vida:

  • limpio;
  • por defecto;
  • sitio.

Y cada uno de ellos tiene su propio orden de fase. Limpio tiene el más corto:

  1. limpieza previa;
  2. limpio;
  3. puesto limpio.

Se han agregado fases adicionales ocultas de limpieza previa y limpieza posterior para que el escenario de limpieza se pueda hacer más flexible.

Luego viene el ciclo de vida del sitio , que, como ya sabes, está diseñado para generar automáticamente la documentación del proyecto. Consta de cuatro fases:

  1. pre-sitio
  2. sitio;
  3. post-sitio;
  4. implementación del sitio.

Los ciclos de vida estándar se pueden mejorar con la funcionalidad mediante los complementos de Maven . Hablaremos de esto más adelante, porque este es un tema muy interesante que merece una conferencia aparte.

Y el script predeterminado tiene la lista más larga de fases:

  1. validar;
  2. generar fuentes;
  3. fuentes de proceso;
  4. generar-recursos;
  5. proceso-recursos;
  6. compilar;
  7. proceso-prueba-fuentes;
  8. proceso-prueba-recursos;
  9. compilación de prueba;
  10. prueba;
  11. paquete;
  12. instalar;
  13. desplegar.

Hay todas las mismas fases que ya conoce, pero se han agregado algunas más opcionales.

Primero, una etapa popular en proyectos grandes es generar fuentes : generar código Java basado en XML, por ejemplo. Y un par de fuentes de proceso , que hace algo con este código.

En segundo lugar, la generación de recursos es generate-resources y su método de recursos de procesos emparejados . A menudo verá algunas actividades vinculadas a estas fases en proyectos grandes.

Y por último, la prueba. Tiene tres fases opcionales adicionales que ayudan a que la ejecución de la fase de prueba sea lo más flexible posible: proceso-prueba-fuentes, proceso-prueba-recursos, prueba-compilación.