2013-02-12 9 views
18

Ich bin neu in Maven und möchte das Jacoco Maven Plugin verwenden, um meine Projekte zu erstellen.Jacoco Maven Plugin - Plugin-Ausführung nicht durch die Lifecycle-Konfiguration abgedeckt

Ich habe ein Beispielprojekt mit TestNG die einzige Abhängigkeit eingerichtet.

Hier ist ein Teil der pom.xml:

<dependencies> 
    <dependency> 
     <groupId>org.testng</groupId> 
     <artifactId>testng</artifactId> 
     <version>6.8</version> 
    </dependency> 
</dependencies> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.jacoco</groupId> 
      <artifactId>jacoco-maven-plugin</artifactId> 
      <version>0.6.2.201302030002</version> 
      <executions> 
       <execution> 
        <goals> 
         <goal>prepare-agent</goal> 
        </goals> 
       </execution> 
       <execution> 
        <id>report</id> 
        <phase>prepare-package</phase> 
        <goals> 
         <goal>report</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

und ich bekomme diese Fehlermeldung:

Plugin Ausführung nicht durch Lifecycle-Konfiguration abgedeckt: org.jacoco: jacoco-maven- Plugin: 0.6 .2.201302030002: prepare-agent (Ausführung: Standard, Phase: initialisieren)

Was mache ich falsch? Cheers

Antwort

-2

Dieses Problem ist spezifisch für Eclipse, wie outlined on the M2E wiki. Entschuldigung, ich kann nicht mehr helfen, da ich Eclipse nicht benutze.

17

Sie können das Plugin Ziel ignorieren, und fügen hinzu, so etwas zu Ihrem pom.xml

<pluginManagement> 
     <plugins> 
      <!--This plugin's configuration is used to store Eclipse m2e settings only. 
       It has no influence on the Maven build itself.--> 
      <plugin> 
       <groupId>org.eclipse.m2e</groupId> 
       <artifactId>lifecycle-mapping</artifactId> 
       <version>1.0.0</version> 
       <configuration> 
        <lifecycleMappingMetadata> 
         <pluginExecutions> 
          <pluginExecution> 
           <pluginExecutionFilter> 
            <groupId>org.jacoco</groupId> 
            <artifactId>jacoco-maven-plugin</artifactId> 
            <versionRange>[0.5,) 
            </versionRange> 
            <goals> 
             <goal>prepare-agent</goal> 
            </goals> 
           </pluginExecutionFilter> 
           <action> 
            <!-- m2e doesn't know what to do with jacoco, 
             let's ignore it or annoying error markers appear 
             see http://wiki.eclipse.org/M2E_plugin_execution_not_covered 
            --> 
            <ignore></ignore> 
           </action> 
          </pluginExecution> 
         </pluginExecutions> 
        </lifecycleMappingMetadata> 
       </configuration> 
      </plugin> 
     </plugins> 
    </pluginManagement> 
+0

Fügen Sie dies in Tags – SkorpEN

12

Da dies auf die Eclipse Maven Plugin verwendet ist, alternativ kann diese lokal in den Einstellungen Eclipse eingestellt werden. Durch das Verschieben der Konfiguration aus der POM-Datei des Projekts wird der Code einfach und sauber, ohne IDE-Details.

Gehen Sie zu Eclipse -> Einstellungen -> Maven -> Lifecycle Mappings. In lifecycle-mapping-metadata.xml wie die folgenden:

<?xml version="1.0" encoding="UTF-8"?> 
<lifecycleMappingMetadata> 
    <pluginExecutions> 
    <pluginExecution> 
     <pluginExecutionFilter> 
     <groupId>org.jacoco</groupId> 
     <artifactId>jacoco-maven-plugin</artifactId> 
     <versionRange>[0.5,)</versionRange> 
     <goals> 
      <goal>prepare-agent</goal> 
     </goals> 
     </pluginExecutionFilter> 
     <action> 
     <ignore /> 
     </action> 
    </pluginExecution> 
    </pluginExecutions> 
</lifecycleMappingMetadata> 

neu laden die Life-Cycle-Mappings Datei und dann Maven ->Update Project

-1

ich schließlich das Plugin zu ignorieren gewählt und verwenden Sie die CLI mvn Befehl stattdessen für den Test mit Code Abdeckung.

Klicken Sie in Ihrer Eclipse-IDE mit der rechten Maustaste auf die rote farbmarkierte Warnung für das jacoco-maven-plugin. Sie sollten drei Optionen im Popup die Warnung zu beheben, wählen Sie die Warnung zu ignorieren, wäre das eine automatisch generierte Abschnitt in Ihrem pom.xml führen, die mit einer Reihe von Kommentaren begann

<!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.--> 

in einer Befehlszeile laufen, den MVN Befehl vor jedem Check-in, und das sollte das Testziel mit Berichterstattung auslösen,

$mvn clean package 
+0

Dies beantwortet die Frage nicht. Die Frage bezieht sich speziell auf den Plugin-Fehler. Die Verwendung der Befehlszeile löst den Fehler nicht – Pat

+0

@Pat Es beantwortet die Frage. Diese Antwort erklärt eine Möglichkeit, die Warnung zu ignorieren, bitte lesen Sie sie noch einmal genau. Wenn Sie die Anweisungen hier befolgen, wird Ihre POM-Datei mit der Kommentarzeile im Code-Abschnitt aktualisiert, um die Warnungen zu ignorieren.Das CLI ist nur eine Alternative. –

+0

Ich glaube immer noch, dass das Ignorieren des Plugins in Eclipse das Problem nicht löst, es ist nur ein Workaround. Der ganze Sinn der Verwendung eines Maven-Plugins in Eclipse ist, dass ich nicht in die Befehlszeile gehen muss und diese "mvn" -Befehle eintippen muss. Diese Problemumgehung löst den tatsächlichen Fehler nicht. – Pat

0

bietet Eclipse jetzt eine schnelle Lösung die Warnung und speichert die in Benutzereinstellungen (in Eclipse deaktivieren -> Einstellungen - -> Maven -> Lifecycle Mappings lifecycle-mapping-metadata.xml wie von @ iker-aguayo notiert, so dass Sie die Datei nicht manuell erstellen oder bearbeiten müssen. Dies ist nützlich in Fällen, in denen Sie die Pom nicht aktualisieren können (z. B. mit einem Open-Source-Projekt, das Sie nicht festschreiben können).