Emma - クラスxはすでに計測されているようです

エマ–クラスxはすでに装備されているようです

pom.xmlの「maven-emma-plugin」を確認します。

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を直接実行すると、コマンドライン「Emmaplugin」が起動してクラスをインストルメント化するのに対し、pom.xmlビルドセクションで宣言した他の「Emmaplugin」は次に開始して、クラスのインストルメントを再試行してください。 エラーメッセージは、インストルメント済みの既にクラスをインストルメントしようとする2番目の「Emmaプラグイン」から来ています。

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

それを解決するには:

Solution 1
pom.xmlビルドセクションから「emma-maven-plugin」を削除します。 mvn -X emma:emmaを再度実行してみてください。 正常に動作し、${project} arget\site\emma\でコードカバレッジレポートを生成するはずです。

Solution 2
ビルドセクションに「emma-maven-plugin」を含める場合は、代わりにmvn packageを使用して、「emma-maven-plugin」が2回実行されないようにします。

mvn package