Эмма - Класс 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