エマ–クラス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 1pom.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