¿Cuál es el “reactor” en Maven?

He estado leyendo sobre el reactor Maven y estoy confundido por su uso de terminología. He leído que un módulo múltiple es un reactor, que puedes manipular el reactor maven y que el reactor es un complemento. ¿Qué es exactamente el reactor?

El reactor es la parte de Maven que le permite ejecutar un objective en un conjunto de módulos. Como se menciona en la documentación de Maven 1.x sobre construcciones de varios módulos (el concepto del reactor ya estaba allí en Maven 1.x), mientras que los módulos son unidades de trabajo discretas, se pueden reunir utilizando el reactor para construirlos simultáneamente y:

El reactor determina el orden de construcción correcto a partir de las dependencias establecidas por cada proyecto en sus respectivas descripciones de proyecto, y luego ejecutará un conjunto de objectives establecidos. Se puede usar tanto para proyectos de construcción como para otros objectives, como la generación de sitios.

Como se explicó, el reactor es lo que hace posibles las construcciones multi-módulo: calcula el gráfico dirigido de dependencias entre módulos, deriva el orden de comstackción de este gráfico (por eso las dependencias cíclicas son desestimadas, lo cual es bueno de todos modos) y luego ejecuta objectives en los módulos. En otras palabras, una ” construcción de múltiples módulos ” es una ” construcción de reactor ” y una ” construcción de reactor ” es una ” construcción de múltiples módulos “.

En Maven 2.x, el soporte de construcciones de múltiples módulos ha mejorado mucho y el reactor se ha vuelto transparente para los usuarios de Maven. Pero todavía está allí y se usa debajo del capó.

En septiembre de 2008 (es decir, mucho después del lanzamiento de Maven 2), se creó un plugin de reactor para hacer posible la interacción (nuevamente) más estrecha con el reactor Maven. Brett Porter escribió en su blog sobre esto en Reactor: My New Favourite Maven Plugin .

La mayoría de las características del plugin reactor ahora son compatibles de forma nativa (desde Maven 2.1.0). Ver consejos y trucos de Maven: Opciones de Reactor Avanzado .

Reactor se utiliza cuando un proyecto tiene múltiples módulos.

Los trabajos realizados por reactor son:

  • Recolectando los detalles del módulo
  • Ordenando el orden basado en dependencias
  • Construye los proyectos en orden

Comenzando con el lanzamiento de Maven 2.1, hay nuevas opciones de línea de comandos de Maven que le permiten manipular la forma en que Maven construirá proyectos multimodulares. Estas nuevas opciones son:

-rf, --resume-from Resume reactor from specified project -pl, --projects Build specified reactor projects instead of all projects -am, --also-make If project list is specified, also build projects required by the list -amd, --also-make-dependents If project list is specified, also build projects that depend on projects on the list 

fuente