Emma - Klasse x scheint bereits instrumentiert zu sein
Überprüfen Sie das "Maven-Emma-Plugin" inpom.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. Problem
Wenn ich den Befehlmvn emma:emma ausführe, um den Code-Coverage-Bericht zu generieren, werden Sie aufgefordert, die x-Klasse bereits zu instrumentieren.
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]
Versuchen Sie, die Problemklasse x vom Build auszuschließen, aber andere Klassen haben auch den gleichen instrumentierten Fehler bereits getroffen?
pom.xml
org.codehaus.mojo emma-maven-plugin 1.0-alpha-3 true process-classes -com.exampleemma.config.* instrument
2. Lösung
Das Problem ist, wenn Sie den Befehlmvn emma:emma direkt ausführen, wird die Befehlszeile "Emma Plugin" gestartet und die Klassen instrumentiert, während das andere "Emma Plugin", das im Build-Abschnitt vonpom.xmldeklariert wurde, dies tut Beginnen Sie als nächstes und versuchen Sie erneut, die Klassen zu instrumentieren. Die Fehlermeldung kommt vom zweiten „Emma-Plugin“, das versucht, eine bereits instrumentierte Klasse zu instrumentieren.
P.S Try to trace the process behind with the Maven debug command `mvn -X emma:emma`
Um es zu lösen:
Solution 1
Entfernen Sie das "emma-maven-plugin" aus dem Build-Bereich vonpom.xml. Versuchen Sie erneut,mvn -X emma:emma auszuführen. Es sollte gut funktionieren und den Code-Coverage-Bericht bei${project} arget\site\emma\ generieren.
Solution 2
Wenn Sie das "emma-maven-plugin" in den Build-Abschnitt aufnehmen möchten, verwenden Sie stattdessenmvn package, um zu vermeiden, dass das "emma-maven-plugin" zweimal ausgeführt wird.
mvn package