我有一个多模块项目,我正在使用 Sonar + Emma (Code Coverage) / Arquillian 进行分析。如果我跑
mvn clean install
mvn sonar:sonar
分别在每个模块上,一切正常。但是,当我从主父模块运行它时,它会失败,因为 emma 以某种方式试图覆盖它并且由于某种原因它失败了。父母看起来像:
<groupId>com.parent</groupId>
<artifactId>parent-build</artifactId>
..
<packaging>pom</packaging>
...
<modules>
<module>Module A</module>
<module>Module B</module>
<module>Module C</module>
</modules>
...
mvn clean install -Dskiptests=true
mvn sonar:sonar
当声纳进入“父级构建”并尝试使用 emma 进行覆盖时,它会抛出此异常:
Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.1:sonar
(default-cli) on project parent-build: Can not execute Sonar
...
root cause is
IllegalStateException: source file data view requested for metadata
with incomplete SourceFile debug info at
com.vladium.emma.report.ReportDataModel.getView(ReportDataModel.java:49)
我已经尝试让声纳跳过该模块,但它需要根模块来获取其统计信息。我需要以某种方式让 sonar-maven-plugin 在到达父级时停止使用 emma。
我应该怎么做才能让它发挥作用?