Emma - La classe x semble déjà instrumentée
Vérifiez le "maven-emma-plugin" danspom.xml
:
pom.xml
//... org.codehaus.mojo emma-maven-plugin 1.0-alpha-3 true process-classes instrument org.apache.maven.plugins maven-surefire-plugin true once xml ${project.build.directory}/generated-classes/emma/classes
1. Problème
Lorsque j'exécute la commandemvn emma:emma
pour générer le rapport de couverture de code, cela demande que la classe x est déjà instrumentée?
Failed to execute goal org.codehaus.mojo:emma-maven-plugin:1.0-alpha-3:instrument (default-cli) on project MkyongEmma: Execution default-cli of goal org.codehaus.mojo:emma-maven-plugin:1.0-alpha-3:instrument failed: class [com.exampleemma.config.xxx] appears to be instrumented already -> [Help 1]
Essayez d'exclure la classe de problème x de la construction, mais d'autres classes ont également frappé la même erreur instrumentée déjà?
pom.xml
org.codehaus.mojo emma-maven-plugin 1.0-alpha-3 true process-classes -com.exampleemma.config.* instrument
2. Solution
Le problème est que lorsque vous exécutez la commandemvn emma:emma
directement, la ligne de commande «Emma plugin» est lancée et instrumenté les classes, tandis que l'autre «Emma plugin» qui a déclaré dans la section build depom.xml
, va commencer ensuite et essayer à nouveau d'instrumenter les classes. Le message d'erreur vient du deuxième «plugin Emma», qui essaie d'instrumenter une classe déjà instrumentée.
P.S Try to trace the process behind with the Maven debug command `mvn -X emma:emma`
Pour le résoudre:
Solution 1
Supprimez le "emma-maven-plugin" de la section de construction de votrepom.xml
. Essayez à nouveau d'exécutermvn -X emma:emma
. Cela devrait fonctionner correctement et générer le rapport de couverture de code à${project} arget\site\emma\
.
Solution 2
Si vous voulez inclure le "emma-maven-plugin" dans la section build, utilisez plutôtmvn package
, pour éviter que "emma-maven-plugin" ne s'exécute 2 fois.
mvn package