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