Emma - Klasse x scheint bereits instrumentiert zu sein

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