Jenkins jacoco 插件 - 仪表板报告随 Java8 一起消失了

Jenkins jacoco plugin - Dashboard Reports are gone with Java8

我正在使用的大多数项目都使用 Gradle 1.6 到 2.3 和 Java7,并且我使用 Jacoco 进行代码覆盖。

Jenkins 版本 是:1.565.3 和 1.618(我有两个实例)
Jenkins 的 Jacoco 插件 版本:1.0.12

Gradle 版本: 2.3
Gradle 的 Jacoco 插件 版本:0.7.2.201409121644

现在 Gradle 中有一个 jacoco 插件(它提供 jacocoTestReport 任务),在 Jenkins 中有一个 Jacoco 插件可以读取 运行 各种测试生成的 exec 文件并显示报告Jenkins 作业的仪表板。

如果我使用 Java 8 和 Gradle 2.0 到 2.3 版本,这些报告现在不会显示。 Jenkins 作业成功构建并运行了对 Jacoco 的分析,但报告消失了。

你见过这个问题吗?

如果你看到这个,它表明覆盖范围消失了,最新版本的所有内容都是红色/没有覆盖范围。

主仪表板

Jacoco Plugin 报告(如果你点击上面的报告就可以了):

注意

  1. 我有有效的 .exec 文件,如果我使用 Gradle 的 jacocoTestReport 任务以 HTML 格式生成覆盖率但 Jacoco 插件仪表板报告则显示有效的代码覆盖率没有显示任何内容(仅显示 headers,根本没有 data/no 覆盖)。

  2. 当我使用 Java7.

  3. 时,Jenkins 中的 jacocoTestReport 和 Jacoco 插件生成的报告生成了有效输出

Gradle 的 jacocoTestReport 任务使用相同的 .exec 文件生成的报告显示我拥有的 jacoco* .exec 文件是有效的。

我找出了 Java 8 个项目的代码覆盖率未显示的原因。

这是由于 Jenkins 的 Jacoco 插件 版本不兼容,它仅适用于 Jenkins 实例中的 Java7。尝试将 Jenkins 中的 Jacoco 插件更新到最新版本(1.0.15+)。

1.0.15 版本提供了对 Java8 的支持。 Jacoco 插件发行说明

版本 1.0.15(2014 年 6 月 11 日)
• 修复 [JENKINS-20440] Inspector 问题
• 修复 [JENKINS-22716] - 更新到 JaCoCo 0.7.x 以支持 Java 8
• 修复 #40 - 项目仪表板图表的数据被截断

因此,需要在您的 Jenkins 中升级 jacoco 插件。

此外,请在此处查看版本 info/Release 信息:https://wiki.jenkins-ci.org/display/JENKINS/JaCoCo+Plugin

您会注意到(此时)有一条警告消息可能会在即将发布的版本中(几天后)得到解决。

不幸的是,JaCoCo 0.7.5 打破了对 jacoco.exec 文件以前二进制格式的兼容性,JaCoCo 插件当前基于 JaCoCo 0.7.4,因此您不能在项目中使用此插件已经使用 JaCoCo 0.7.5 或更新版本,请暂时坚持使用 0.7.4 或更低版本,直到插件更新