Was ist der "Reaktor" in Maven?

105

Ich habe über den Maven-Reaktor gelesen und bin durch seine Terminologie verwirrt. Ich habe gelesen, dass ein Multimodul ein Reaktor ist, dass Sie den Maven-Reaktor manipulieren können und dass der Reaktor ein Plugin ist. Was genau ist der Reaktor?

harschware
quelle

Antworten:

164

Der Reaktor ist der Teil von Maven, der es ihm ermöglicht, ein Ziel für eine Reihe von Modulen auszuführen. Wie in der Maven 1.x- Dokumentation zu Builds mit mehreren Modulen erwähnt (das Reaktorkonzept war bereits in Maven 1.x vorhanden), können Module zwar diskrete Arbeitseinheiten sein, sie können jedoch mithilfe des Reaktors zusammengestellt werden, um sie gleichzeitig zu erstellen, und:

Der Reaktor ermittelt die richtige Erstellungsreihenfolge aus den Abhängigkeiten, die von jedem Projekt in den jeweiligen Projektdeskriptoren angegeben werden, und führt dann einen festgelegten Satz von Zielen aus. Es kann sowohl für Bauprojekte als auch für andere Ziele wie die Standortgenerierung verwendet werden.

Wie bereits erläutert, ermöglicht der Reaktor Builds mit mehreren Modulen: Er berechnet den gerichteten Diagramm der Abhängigkeiten zwischen Modulen, leitet die Buildreihenfolge aus diesem Diagramm ab (weshalb zyklische Abhängigkeiten nicht zulässig sind, was ohnehin gut ist) und führt dann Ziele aus die Module. Mit anderen Worten, ein " Multi-Modul-Build " ist ein " Reaktor-Build " und ein " Reaktor-Build " ist ein " Multi-Modul-Build ".

In Maven 2.x wurde die Unterstützung von Multi-Modul-Builds erheblich verbessert und der Reaktor ist für Maven-Benutzer transparent geworden. Aber es ist immer noch da und wird unter der Haube verwendet.

Im September 2008 (dh lange nach der Einführung von Maven 2) wurde ein Reaktor-Plugin erstellt, um eine (erneute) engere Interaktion mit dem Maven-Reaktor zu ermöglichen. Brett Porter hat darüber in Reactor: My New Favorite Maven Plugin gebloggt .

Die meisten Funktionen des Reaktor-Plugins werden jetzt nativ unterstützt (seit Maven 2.1.0). Siehe Maven-Tipps und Tricks: Erweiterte Reaktoroptionen .

Pascal Thivent
quelle
10
Warum sagt die Maven-Site, dass dieses Plugin "im Ruhestand" ist?
Mopparthy Ravindranath
4
Weil das Reaktor-Plugin ein Plugin ist, das (nur) mit dem eigentlichen Reaktor "spricht". Es wird also nicht der Reaktor selbst ausgemustert, sondern ein damit verbundenes Plugin.
Lonzak
8

Reaktor wird verwendet, wenn ein Projekt mehrere Module hat.

Die Arbeit des Reaktors ist:

  • Sammeln der Moduldetails
  • Sortieren der Reihenfolge nach Abhängigkeiten
  • Projekte in Ordnung bringen

Ab der Version 2.1 gibt es neue Befehlszeilenoptionen, mit denen Sie die Art und Weise ändern können, in der Maven Projekte mit mehreren Modulen erstellt. Diese neuen Optionen sind:

-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  

Quelle

Premraj
quelle