Maven: Was ist pluginManagement?

Dies ist ein Ausschnitt meiner Pom-Datei.

....   org.apache.maven.plugins maven-dependency-plugin 2.4   install  copy-dependencies   ......      ... 

Ich benutze es erfolgreich mit dem Befehl

 mvn install 

Aber wenn ich versuche, es in das “pluginManagement” -Tag einzufügen, maven-dependency-plugin das maven-dependency-plugin , wenn ich das install maven-dependency-plugin . Warum ändert das “pluginManagement” -Tag das Build-Verhalten? Oder sollte ich ein anderes Ziel oder eine andere Option verwenden?

Sie müssen noch hinzufügen

   org.apache.maven.plugins maven-dependency-plugin   

in Ihrem Build, weil pluginManagement nur eine Möglichkeit ist, dieselbe Plug-in-Konfiguration für alle Ihre Projektmodule freizugeben.

Aus Maven Dokumentation:

pluginManagement : ist ein Element, das entlang von Seiten-Plugins gesehen wird. Das Plugin-Management enthält Plug-in-Elemente auf die gleiche Art und Weise, mit der Ausnahme, dass Plug-In-Informationen für diesen speziellen Projekt-Build nicht konfiguriert werden müssen, sondern dass Projekt-Builds konfiguriert werden sollen, die von diesem erben. Dies konfiguriert jedoch nur Plugins, auf die im Plugins-Element in den untergeordneten Elementen tatsächlich verwiesen wird. Die Kinder haben das Recht, die pluginManagement-Definitionen zu überschreiben.

Der Unterschied zwischen und ist, dass ein unter:

  • definiert die Einstellungen für Plugins, die von Modulen in Ihrem Build vererbt werden. Dies ist ideal für Fälle, in denen Sie eine Eltern-Pom-Datei haben.

  • ist ein tatsächlicher Aufruf des Plugins. Es kann oder kann nicht von einem geerbt werden.

Sie brauchen kein in Ihrem Projekt, wenn es sich nicht um ein Eltern-POM handelt. Wenn es sich jedoch um einen Eltern-Pom handelt, müssen Sie im Pom des Kindes eine Deklaration wie folgt haben:

   com.foo bar-plugin   

Beachten Sie, dass Sie keine Konfiguration definieren. Sie können sie vom übergeordneten Objekt übernehmen, sofern Sie Ihren Aufruf nicht entsprechend den Anforderungen des untergeordneten Projekts anpassen müssen.

Für genauere Informationen können Sie Folgendes überprüfen:

  • Die Maven pom.xml Referenz: Plugins

  • Die Maven pom.xml Referenz: Plugin-Verwaltung

Sie verwenden pluginManagement in einem Eltern-Pom, um es für den Fall zu konfigurieren, dass ein untergeordnetes Pom es benutzen möchte, aber nicht jedes Kind-Plugin möchte es benutzen. Ein Beispiel dafür ist, dass Ihr Super Pom einige Optionen für das Javadoc-Plugin definiert. Nicht jeder Child Pom möchte Javadoc verwenden, daher definieren Sie diese Standardwerte in einem Abschnitt “pluginManagement”. Das untergeordnete Pom, das das Javadoc-Plugin verwenden möchte, definiert lediglich einen Plugin-Abschnitt und übernimmt die Konfiguration von der pluginManagement-Definition im übergeordneten Pom.

pluginManagement: ist ein Element, das entlang von Seiten-Plugins gesehen wird. Das Plugin-Management enthält Plug-in-Elemente auf die gleiche Art und Weise, mit der Ausnahme, dass Plug-In-Informationen für diesen speziellen Projekt-Build nicht konfiguriert werden müssen, sondern dass Projekt-Builds konfiguriert werden sollen, die von diesem erben. Dies konfiguriert jedoch nur Plugins, auf die im Plugins-Element in den untergeordneten Elementen tatsächlich verwiesen wird. Die Kinder haben das Recht, die pluginManagement-Definitionen zu überschreiben.

Von http://maven.apache.org/pom.html#Plugin%5FManagement

Kopiert von:

Maven2 – Problem mit pluginManagement und Eltern-Kind-Beziehung