Emma - La classe x semble déjà être instrumentée

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