Ich verwende Eclipse 3.7 Indigo mit dem Maven M2E Plugin 1.0.100.
Bei Verwendung des JBoss 7.x JavaEE 6 EAR-Archetyps gibt mir der POM für EAR den folgenden Fehler:
Plugin-Ausführung, die nicht von der Lebenszykluskonfiguration abgedeckt wird: org.apache.maven.plugins: maven-ear-plugin: 2.6: generiere-anwendungs-xml (Ausführung: Standard-generiere-anwendungs-xml, Phase: generiere Ressourcen)
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-ear-plugin</artifactId>
<version>2.6</version>
<configuration>
<!-- Tell Maven we are using Java EE 6 -->
<version>6</version>
<!-- Use Java EE ear libraries as needed. Java EE ear libraries
are in easy way to package any libraries needed in the ear, and automatically
have any modules (EJB-JARs and WARs) use them -->
<defaultLibBundleDir>lib</defaultLibBundleDir>
<modules></modules>
</configuration>
<plugin>
quelle
target
Ordner entpackt werden . Sie möchten nicht, dass dies beim Speichern jeder Quelldatei "inkrementell" wiederholt wird. Oder vielleicht willst du das. Wirklich, m2e hat keine Ahnung von Ihrem spezifischen Build. Sie können speichern, was m2e in Eclipse, POM tun soll, oder möglicherweise einen m2e-Connector installieren, der m2e mehr Wissen für den Build-Schritt hinzufügt. Dies sind die Optionen, die Sie sehen sollten. Ich verstehe, dass Sie Ihr POM m2e nicht bewusst machen möchten, aber es ist ein guter Ort, um dies zentral für alle Ihre Entwickler zu konfigurieren.Trotzdem ist es zu spät, aber meine Lösung bestand darin, einfach mit der rechten Maustaste auf die Fehlermeldung in Eclipse zu klicken und für jeden POM mit solchen Fehlern Schnellkorrektur >> Ignorieren zu wählen
quelle
Eclipse hat das Konzept der inkrementellen Builds. Dies ist unglaublich nützlich, da es viel Zeit spart.
Wie ist das nützlich?
Angenommen, Sie haben gerade eine einzelne Java-Datei geändert. Die inkrementellen Builder können den Code kompilieren, ohne alles neu kompilieren zu müssen (was mehr Zeit in Anspruch nimmt).
Was ist nun das Problem mit Maven Plugins?
Die meisten Maven-Plugins sind nicht für inkrementelle Builds konzipiert und verursachen daher Probleme für m2e. m2e weiß nicht, ob das Plugin-Ziel entscheidend ist oder ob es irrelevant ist. Wenn nur jedes Plugin ausgeführt wird, wenn sich eine einzelne Datei ändert, wird es viel Zeit in Anspruch nehmen.
Aus diesem Grund stützt sich m2e auf Metadateninformationen, um herauszufinden, wie die Ausführung behandelt werden soll. m2e hat verschiedene Optionen für die Bereitstellung dieser Metadateninformationen entwickelt. Die Reihenfolge der Einstellungen ist wie folgt (höchste bis niedrigste).
1,2 bezieht sich auf die Angabe des Abschnitts pluginManagement im Tag Ihrer POM-Datei oder eines ihrer Eltern. M2E liest diese Konfiguration, um das Projekt zu konfigurieren. Das folgende Snippet weist m2e an, die
jslint
undcompress
Ziele des yuicompressor-maven-Plugins zu ignorieren3) Falls Sie es nicht vorziehen, Ihre POM-Datei mit diesen Metadaten zu verschmutzen, können Sie diese in einer externen XML-Datei speichern (Option 3). Unten finden Sie eine Beispiel-Mapping-Datei, die m2e anweist, die
jslint
undcompress
Ziele des yuicompressor-maven-Plugins zu ignorieren4) Falls Ihnen eine dieser 3 Optionen nicht gefällt, können Sie einen m2e-Connector (Erweiterung) für das Maven-Plugin verwenden. Der Connector stellt wiederum die Metadaten für m2e bereit. Unter diesem Link sehen Sie ein Beispiel für die Metadateninformationen in einem Connector . Möglicherweise haben Sie bemerkt, dass sich die Metadaten auf einen Konfigurator beziehen. Dies bedeutet einfach, dass m2e die Verantwortung an diese bestimmte Java-Klasse delegiert, die vom Erweiterungsautor bereitgestellt wird. Der Konfigurator kann das Projekt konfigurieren (z. B. zusätzliche Quellordner hinzufügen usw.) und entscheiden, ob das eigentliche Maven-Plugin während eines inkrementellen Builds ausgeführt werden soll (falls) Wird der Konfigurator nicht ordnungsgemäß verwaltet, kann dies zu endlosen Projektbuilds führen.
Unter diesen Links finden Sie ein Beispiel für die Konfiguration ( Link1 , Link2 ). Wenn das Plugin also über einen externen Anschluss verwaltet werden kann, können Sie es installieren. m2e führt eine Liste solcher Konnektoren, die von anderen Entwicklern bereitgestellt wurden. Dies wird als Erkennungskatalog bezeichnet. m2e fordert Sie auf, einen Connector zu installieren, wenn Sie noch keine Metadaten für die Lebenszykluszuordnung für die Ausführung über eine der Optionen (1-6) haben und der Erkennungskatalog über eine Erweiterung verfügt, mit der die Ausführung verwaltet werden kann.
Das folgende Bild zeigt, wie m2e Sie auffordert, den Connector für das Build-Helper-Maven-Plugin zu installieren. .
5) m2e ermutigt die Plugin-Autoren, die inkrementelle Erstellung und Bereitstellung von Lifecycle-Mappings innerhalb des Maven-Plugins selbst zu unterstützen. Dies würde bedeuten, dass Benutzer keine zusätzlichen Lifecycle-Mappings oder Connectors verwenden müssen. Einige Plugin-Autoren haben dies bereits implementiert
6) Standardmäßig enthält m2e die Metadaten für die Lebenszykluszuordnung für die meisten häufig verwendeten Plugins wie das Maven-Compiler-Plugin und viele andere.
Zurück zur Frage: Sie können wahrscheinlich einfach eine Ignorier-Lebenszykluszuordnung in 1, 2 oder 3 für das spezifische Ziel bereitstellen, das Ihnen Probleme bereitet.
quelle
Eine gute Problemumgehung, um Sie daran zu erinnern, dass m2e besser konfiguriert werden könnte, ohne dass das Projekt eine falsch positive Fehlermarkierung erbt, besteht darin, diese Fehler einfach auf Warnungen herunterzustufen:
Fenster -> Einstellungen -> Maven -> Fehler / Warnungen -> Plugin-Ausführung, die nicht von der Lebenszykluskonfiguration abgedeckt wird = Warnung
quelle
Ich habe versucht, direkt nach der Bereinigung, dh nach der Bereinigung, ein bestimmtes Einstecken durchzuführen (Standard ist die Bereinigungsphase). Dies funktionierte bei mir mit Eclipse Indigo. Gerade nach dem Reinigen hinzugefügt, löste das Problem für mich.
quelle
phase
und eingoal
für dieexecution
in der pom.xml, die mir gegeben wurde, und ich bekomme immer noch den Fehler.Ich konnte das gleiche Problem mit dem Maven-Antrun-Plugin und dem Jaxb2-Maven-Plugin in Eclipse Kepler 4.3 lösen, indem ich diese Lösung anwendete: http://wiki.eclipse.org/M2E_plugin_execution_not_covered#Eclipse_4.2_add_default_mapping
Also den Inhalt meines% elipse_workspace_name% /. metadata / .plugins / org.eclipse.m2e.core / lifecycle-Mapping-Metadata.xml lautet wie folgt:
* Musste Eclipse neu starten, um zu sehen, dass die Fehler verschwunden sind.
quelle
Ab Maven Eclipse (m2e) Version 0.12 müssen alle Maven-Lebenszyklusziele einer installierten m2e-Erweiterung zugeordnet werden. In diesem Fall hatte der
maven-ear-plugin
ein nicht zugeordnetes Zieldefault-generate-application-xml
.Sie können nicht zugeordnete Lebenszyklusziele ausschließen, indem Sie einfach die folgenden Anweisungen befolgen:
https://wiki.eclipse.org/M2E_plugin_execution_not_covered
Alternativ klicken Sie einfach mit der rechten Maustaste auf die Fehlermeldung in Eclipse und wählen Sie
Quick Fix
->Ignore for every pom with such errors
.Sie sollten vorsichtig sein, wenn Sie Lebenszyklusziele ignorieren: In der Regel tun Ziele etwas Nützliches, und wenn Sie sie so konfigurieren, dass sie in Eclipse ignoriert werden, verpassen Sie möglicherweise wichtige Erstellungsschritte. Möglicherweise möchten Sie auch die EAR-Erweiterung von Maven Eclipse für das nicht zugeordnete Lebenszyklusziel unterstützen.
quelle
Mit dem in der Antwort von Jan erläuterten Mechanismus habe ich das m2e-Pluging angewiesen, das Ziel "generate-application-xml" zu ignorieren. Dies beseitigt den Fehler und scheint zu funktionieren, da m2e application.xml erstellt.
Der Fehler hat uns also gezwungen zu entscheiden, welcher Mechanismus für die Generierung von application.xml zuständig ist, wenn der Maven-Build in Eclipse unter der Kontrolle des m2e-Plugins ausgeführt wird. Und wir haben entschieden, dass m2e verantwortlich ist.
quelle
Sie müssen den Inhalt von M2E_plugin_execution_not_covered verstehen und die folgenden Schritte ausführen :
<ignore/>
unter<action>
Tags angezeigt werden .Beispiel: Fügen Sie bei einem Fehler beim Schreiben von Projekteigenschaften dieses Snippet unter dem
<pluginExecutions>
Abschnitt der Datei lifecycle-Mapping-Metadata.xml hinzu:Sie sollten in Zukunft keine Fehler für ein Projekt sehen.
quelle
Obwohl die Frage zu alt ist, möchte ich die Lösung teilen, die für mich funktioniert hat, da ich bereits alles überprüft habe, wenn es um diesen Fehler geht. Es war ein Schmerz, ich habe zwei Tage lang versucht und am Ende war die Lösung:
Aktualisieren Sie das M2e-Plugin in Eclipse
reinigen und wieder aufbauen
quelle