2013-02-12 8 views
18

Jestem nowy w Maven i chcę używać wtyczki Jacoco Maven do budowania moich projektów.Plugin Jacoco Maven - wykonanie wtyczki nie jest objęte konfiguracją cyklu życia

Przygotowałem przykładowy projekt z TestNG jedyną zależnością.

Oto część 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> 

i dostaję ten błąd:

wykonanie Plugin nieobjętych cyklem konfiguracji: org.jacoco: jacoco-maven- wtyczki: 0,6 .2.201302030002: prepare-agent (wykonanie: domyślne, faza: inicjalizacja)

Co robię źle? Pozdrowienia

Odpowiedz

17

można ignorować cel wtyczki, dodając coś takiego do 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

Dodaj ten wewnątrz znaczników – SkorpEN

12

Jak to związane z Eclipse plugin Maven, alternatywnie może być ustawiony lokalnie w Eclipse preferencji użytkownika. Przeniesienie konfiguracji z pliku POM projektu pomaga w prostym i czystym kodzie, wolnym od szczegółowych danych IDE.

Przejdź do Eclipse -> Preferencje -> Maven -> Mappings cyklu. Dodaj lifecycle-mapping-metadata.xml jak:

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

Odśwież plik odwzorowań cyklu życia, a następnie Maven ->Update Project

-1

I w końcu zdecydował się zignorować wtyczki i użyj polecenia CLI mvn zamiast do testu z kodem pokrycie.

Wewnątrz Eclipse IDE, kliknij prawym przyciskiem myszy czerwone ostrzeżenie o wtyczce jacoko-maven o numerze . Należy trzy opcje w popup naprawić ostrzeżenie zignorować ostrzeżenie, że spowodowałoby automatycznie wygenerowanego rozdział w swoim pom.xml, która rozpoczęła się z linią komentarzach,

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

w wierszu polecenia uruchom komendę mvn przed każdym zaewidencjonowania, a które powinny wywołać cel testu z zasięgiem,

$mvn clean package 
+0

To nie odpowiada na pytanie. Pytanie dotyczy konkretnie błędu wtyczki. Korzystanie z wiersza poleceń nie rozwiązuje błędu – Pat

+0

@Pat To odpowiada na pytanie. Ta odpowiedź wyjaśnia sposób zignorowania ostrzeżenia, przeczytaj go ponownie. Jeśli zastosujesz się do instrukcji tutaj, twój plik POM zostanie zaktualizowany, zaczynając od linii komentarza w sekcji kodu, aby zignorować ostrzeżenia.CLI jest po prostu alternatywą. –

+0

Nadal uważam, że ignorowanie wtyczki w Eclipse nie rozwiązuje problemu, jest jedynie obejściem problemu. Cały sens używania wtyczki maven w Eclipse polega na tym, że nie muszę iść do linii poleceń i wpisywać tych poleceń "mvn". To obejście nie rozwiązuje rzeczywistego błędu. – Pat

0

Eclipse oferuje teraz szybko naprawić, aby wyłączyć ostrzeżenia i zapisać te w preferencjach użytkownika (w Eclipse -> preferencje - -> Maven -> Lifecycle Mappings lifecycle-mapping-metadata.xml, jak odnotowano w @ iker-aguayo), więc nie musisz ręcznie tworzyć ani edytować pliku. Jest to przydatne w przypadkach, gdy nie można zaktualizować pom (np. Przy użyciu projektu open source, którego nie można zatwierdzić).

Powiązane problemy