自动化工具 super-jacoco 代码覆盖率实践

dengdagui · February 08, 2026 · Last by dengdagui replied at February 09, 2026 · 278 hits

Java 代码覆盖率 Jacoco 与 Supper-Jacoco 对比及增强方案

一、背景

在 Java 代码覆盖率工具中,JaCoCo 是原生标准方案,而Supper-Jacoco是基于 JaCoCo 的增强版企业级解决方案。为满足 CI/CD 的集成需求,现对其进行调研分析。

工具对比

特性 JaCoCo(原生) Supper-Jacoco(增强版)
定位 基础的 Java 代码覆盖率库 企业级解决方案,基于 JaCoCo 二次开发
功能 提供行覆盖、分支覆盖等基本指标 在 JaCoCo 基础上,增加了自动化配置、覆盖率合并、历史趋势分析等
配置 需手动进行 XML 等配置 大幅简化配置流程,提供开箱即用的自动化能力
报告 标准 HTML/XML 报告 增强的 HTML 报告,支持定制化展示与趋势图
质量门禁 需自行实现 内置阈值检查,可作为流水线质量门禁

Supper-Jacoco 核心优势

  • 自动化配置:减少繁琐的 XML 配置
  • 覆盖率合并:支持多模块、多服务覆盖率数据的聚合
  • 历史趋势:自动保存历史数据并生成可视化趋势图
  • 报告增强:提供更美观、信息更丰富的 HTML 报告
  • 阈值检查:内置覆盖率质量门禁,支持流水线自动拦截

二、Supper-Jacoco 现状与改造

1. 开源地址

原始项目地址(示例):https://github.com/didi/super-jacoco

2. 现存问题

  1. JDK 兼容性:仅支持 JDK 8,无法兼容 JDK 17/21 等高版本,制约了在生产环境的应用
  2. 功能与部署:部分组件已过时,且部署流程不够便捷

3. 针对性改造

为使其适用于当前技术栈,我们进行了以下关键修改:

  • 支持高版本 JDK:升级相关依赖与配置,现全面支持JDK 17/21
  • 更新 API 文档:将集成的 Swagger UI 升级为功能更强大的Knife4j
  • 简化部署:提供完整的Docker 支持,实现一键化部署

三、改造后的 Supper-Jacoco 使用指南

1. 依赖条件:

部署服务已安装 jdk21
已安装 docker 并支持 docker compose

2. 修改后的项目地址

优化后的项目地址:https://github.com/daguideng/Super-Jacoco

3. 部署 super-jacoco

推荐使用 Docker 进行快速部署:
3.1. 下载地址https://pan.baidu.com/s/1HV3VRwd7Gh0gpwQDOoe8aQ?pwd=abcd 提取码: abcd

3.2. 修改配置:下载 clinet 并修改 jacocoAgent 相关配置

3.3. 重启 jacocoAgent 服务:chmod +x jacocoAgent.sh && bash jacocoAgent.sh

3.4. 部署 super-jacoco 服务

修改 docker-compose.yml 配置:本机 ip 、下载账号及密码

3.5. 运行 docker compose
chmod 755 ./sql
chmod 644 ./sql/init_database.sql

4. 试用

4.1.运行测试:手动测试应用或运行 jmeter 调用其接口

4.2. 打开网 Swagger 地址http://ip:8899/doc.html

4.3.查看代码覆盖率

-- 294332968@qq.com

共收到 1 条回复 时间 点赞
回复内容未通过审核,暂不显示
需要 Sign In 后方可回复, 如果你还没有账号请点击这里 Sign Up