web-dev-qa-db-fra.com

Jacoco Maven Plugin - Exécution du plugin non couverte par la configuration du cycle de vie

Je suis nouveau chez Maven et souhaite utiliser le plugin Jacoco Maven pour construire mes projets.

J'ai mis en place un exemple de projet avec TestNG comme seule dépendance.

Voici une partie du fichier 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>

Et j'obtiens cette erreur:

Exécution du plugin non couverte par la configuration du cycle de vie: org.jacoco: jacoco-maven - plugin: 0.6.2.201302030002: prepare-agent (exécution: par défaut, phase: initialiser)

Qu'est-ce que je fais de mal?

18
Markus

Vous pouvez ignorer l'objectif du plugin, en ajoutant quelque chose comme ceci à votre 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>
18
Iker Aguayo

Comme cela est lié au plug-in Eclipse Maven, vous pouvez également le définir localement dans les préférences d'Eclipse. Le déplacement de la configuration hors du fichier pom du projet aide le code à être simple et propre, exempt de détails IDE.

Allez dans Eclipse -> Préférences -> Maven -> Mappages de cycle de vie. Ajoutez lifecycle-mapping-metadata.xml comme suit:

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

Rechargez le fichier de mappages de cycle de vie, puis Maven -> Update Project

14
neurite

Eclipse offre maintenant une solution rapide pour désactiver l’avertissement et enregistrer celles-ci dans les préférences utilisateur (dans Eclipse -> Préférences -> Maven -> Lifecycle Mappings Vous ne devez pas créer ou éditer manuellement le fichier. Ceci est utile dans les cas où vous ne pouvez pas mettre à jour le pom (par exemple, en utilisant un projet open source où vous ne pouvez pas valider).

0
djb