2013-02-12 11 views
18

Sono nuovo di Maven e voglio usare il plugin Jacoco Maven per costruire i miei progetti.Jacoco Maven Plugin - L'esecuzione del plugin non è coperta dalla configurazione del ciclo di vita

Ho impostato un progetto di esempio con TestNG l'unica dipendenza.

Ecco parte del 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> 

e ottengo questo errore:

esecuzione Plugin non coperti dalla configurazione del ciclo di vita: org.jacoco: jacoco-maven- plugin: 0.6 .2.201302030002: preparatore-agente (esecuzione: default, fase: inizializzazione)

Cosa sto facendo male? Cheers

risposta

-2

Questo problema è specifico di Eclipse, come outlined on the M2E wiki. Spiacente, non posso aiutare più di così, dato che non utilizzo Eclipse.

17

È possibile ignorare l'obiettivo plug-in, l'aggiunta di qualcosa di simile al tuo 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

Aggiungi questo dentro tag – SkorpEN

12

Dato che questo è legato al plugin Eclipse Maven, in alternativa, questo può essere impostato a livello locale nelle preferenze di Eclipse. Spostare la configurazione fuori dal file pom del progetto aiuta a rendere il codice semplice e pulito, privo di particolari IDE.

Vai a Eclipse -> Preferenze -> Maven -> Mapping del ciclo di vita. Aggiungere lifecycle-mapping-metadata.xml come il seguente:

<?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> 

ricaricare il file di mapping del ciclo di vita e quindi Maven ->Update Project

-1

alla fine ho scelto di ignorare il plugin e utilizzare il comando CLI mvn, invece, per il test con il codice copertura.

All'interno del proprio IDE Eclipse, fare clic con il pulsante destro del mouse sull'avvertimento contrassegnato da un colore rosso per il plug-in jacoco-maven . Si dovrebbe tre opzioni nel popup per risolvere l'avviso, scegliere di ignorare l'avvertimento, che si tradurrebbe una sezione generata automaticamente nel pom.xml, che è iniziato con una linea di commenti,

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

In una riga di comando , eseguire il comando mvn prima di ogni check-in, e che dovrebbe far scattare l'obiettivo di prova con una copertura,

$mvn clean package 
+0

Questo non risponde alla domanda. La domanda riguarda specificamente l'errore del plugin. L'utilizzo della riga di comando non risolve l'errore – Pat

+0

@Pat Risponde alla domanda. Questa risposta spiega un modo per ignorare l'avviso, ti preghiamo di leggerlo di nuovo attentamente. Se segui le istruzioni qui, il tuo file POM verrà aggiornato iniziato con la riga di commento nella sezione codice, per ignorare gli avvertimenti.la CLI è solo alternativa. –

+0

Continuo a credere che ignorare il plugin in Eclipse non risolva il problema, è solo una soluzione. L'intero punto di utilizzo di un plug-in Maven in Eclipse è che non devo andare alla riga di comando e digitare quei comandi 'mvn'. Questa soluzione alternativa non risolve l'errore effettivo. – Pat

0

Eclipse offre ora una soluzione rapida per disattivare l'avviso e salvare quelli nelle preferenze degli utenti (in Eclipse -> Preferenze - -> Maven -> Lifecycle Mappings lifecycle-mapping-metadata.xml come indicato da @ iker-aguayo) in modo da non dover creare o modificare manualmente il file. Ciò è utile nei casi in cui non è possibile aggiornare il pom (come l'utilizzo di un progetto open source in cui non è possibile eseguire il commit.)

Problemi correlati