【发布时间】:2019-05-18 15:46:59
【问题描述】:
我有一个 Maven 多模块项目,其中 JaCoCo 没有根据源文件生成报告。
一般来说,如果MyService 是被测类,它将以两种方式报告,一种是通过基于包的适当位置中的文件名MyService.html 以及一系列方法,以数字形式提供覆盖范围的总体情况和图表 - 列出类中的所有方法,每个方法都有一个指向另一个 html MyService.java.html 的可点击链接,其中包含带有红色/绿色/黄色背景的源代码,以显示覆盖率状态。
在我的场景中,只生成了MyService.html,而不是MyService.java.html,前者中列出了包含覆盖详细信息的方法,但没有指向其他报告的超链接,如下所示。
这里的问题变得更有趣了,我的 Maven 配置没有在这个模块中配置,但是在父模块和其他子模块中能够正确生成报告。下面是maven插件配置供参考。
父 POM:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>${jacoco.version}</version>
<configuration>
<destFile>${project.basedir}/target/jacoco-unit.exec</destFile>
<dataFile>${project.basedir}/target/jacoco-unit.exec</dataFile>
<append>true</append>
</configuration>
<executions>
<execution>
<id>jacoco-initialize</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>jacoco-site</id>
<phase>package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
子 POM:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
</plugin>
尝试切换 JaCoCo 版本,但无济于事,现在坚持使用最新的 0.8.2。 Maven 是最新的 - 3.6.0。除此之外,在子 pom 中配置的另一个插件是 PMD——它的存在与否对报告没有任何影响。
类似问题:Gradle JaCoCo plugin - class and method names not clickable in report
【问题讨论】:
标签: java maven jacoco jacoco-maven-plugin