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