Эмма - Класс x, кажется, уже оборудован

Эмма - Класс x, похоже, уже оснащен инструментами

Просмотрите «maven-emma-plugin» вpom.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. проблема

Когда я запускаю командуmvn emma:emma для создания отчета о покрытии кода, она запрашивает, что класс x уже инструментирован?

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]

Пытаться исключить проблемный класс x из сборки, но другие классы также попадают в ту же уже инструментированную ошибку?

pom.xml


 

  
    org.codehaus.mojo
    emma-maven-plugin
    1.0-alpha-3
    true
    
       
           process-classes
            
          
            -com.exampleemma.config.*
          
            
        
          instrument
        
       
    
  

 

2. Решение

Проблема в том, что когда вы запускаете командуmvn emma:emma напрямую, запускается командная строка «Плагин Emma» и инструментирует классы, в то время как другой «плагин Emma», объявленный в разделе сборкиpom.xml, будет можно начать следующим и снова попытаться инструментировать классы. Сообщение об ошибке исходит от второго «плагина Emma», который пытается инструментировать уже оснащенный класс.

P.S Try to trace the process behind with the Maven debug command `mvn -X emma:emma`

Чтобы решить это:

Solution 1
Удалите «emma-maven-plugin» из раздела сборкиpom.xml. Попробуйте снова запуститьmvn -X emma:emma. Он должен работать нормально и генерировать отчет о покрытии кода в${project} arget\site\emma\.

Solution 2
Если вы хотите включить «emma-maven-plugin» в раздел сборки, используйте вместо этогоmvn package, чтобы избежать запуска «emma-maven-plugin» 2 раза.

mvn package