JaCoCo 命令行界面 (CLI) 详细分析与总结

概述

JaCoCo 提供了一个命令行界面,允许用户在命令行中执行基本操作。命令行工具及其所有依赖项打包在 jacococli.jar 中,并随 JaCoCo 下载提供。执行这些工具需要 Java 1.5 或更高版本。

注意事项

  • 虽然提供了 instrument 命令,但 JaCoCo 进行代码覆盖分析的首选方式是使用 JaCoCo Agent 进行即时插桩。离线插桩有多个缺点,仅在特定场景明确需要时才应使用。在使用此模式之前,请查阅有关离线插桩的文档。

可用命令

dump

请求在 'tcpserver' 输出模式下运行的 JaCoCo Agent 的执行数据。

shell 复制代码
java -jar jacococli.jar dump [--address <address>] --destfile <path> [--port <port>] [--quiet] [--reset] [--retry <count>]
  • 选项包括地址、目标文件、帮助、端口、静默模式、重置执行数据、重试次数等。
instrument

对 Java 类文件和 JAR 文件进行离线插桩。

shell 复制代码
java -jar jacococli.jar instrument [<sourcefiles> ...] --dest <dir> [--quiet]
  • 选项包括源文件列表、目标目录、帮助、静默模式等。
merge

合并多个 exec 文件到一个新的文件中。

shell 复制代码
java -jar jacococli.jar merge [<execfiles> ...] --destfile <path> [--quiet]
  • 选项包括执行文件列表、目标文件、帮助、静默模式等。
report

通过读取 exec 和 Java 类文件生成不同格式的报告。

shell 复制代码
java -jar jacococli.jar report [<execfiles> ...] --classfiles <path> [--csv <file>] [--encoding <charset>] [--html <dir>] [--name <name>] [--sourcefiles <path>] [--tabwith <n>] [--xml <file>]
  • 选项包括执行文件列表、类文件位置、CSV 输出文件、编码、HTML 输出目录、报告名称、源文件位置、制表位宽度、XML 输出文件等。
classinfo

打印提供位置的 Java 类文件的信息。

shell 复制代码
java -jar jacococli.jar classinfo [<classlocations> ...] [--verbose]
  • 选项包括类文件位置、帮助、静默模式、详细模式等。
execinfo

以人类可读的格式打印 exec 文件内容。

shell 复制代码
java -jar jacococli.jar execinfo [<execfiles> ...] [--quiet]
  • 选项包括执行文件列表、帮助、静默模式等。
version

打印 JaCoCo 版本信息。

shell 复制代码
java -jar jacococli.jar version [--quiet]
  • 选项包括帮助、静默模式等。

参数说明

  • ◼ 表示必须参数。
  • 表示可以多次指定的参数。

总结

JaCoCo CLI 提供了一套丰富的命令,用于代码覆盖率的生成、合并、报告等。用户可以根据自己的需求选择合适的命令和参数来执行特定的任务。虽然提供了离线插桩的命令,但推荐使用即时插桩以获得更好的效果和避免潜在的问题。

ref: https://www.eclemma.org/jacoco/trunk/doc/cli.html

相关推荐
It's now1 小时前
Spring AI 基础开发流程
java·人工智能·后端·spring
cxh_陈1 小时前
线程的状态,以及和锁有什么关系
java·线程·线程的状态·线程和锁
计算机毕设VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue图书商城系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
R.lin2 小时前
Java 8日期时间API完全指南
java·开发语言·python
毕设源码-赖学姐2 小时前
【开题答辩全过程】以 高校教学质量监控平台为例,包含答辩的问题和答案
java·eclipse
高山上有一只小老虎2 小时前
翻之矩阵中的行
java·算法
火钳游侠2 小时前
java单行注释,多行注释,文档注释
java·开发语言
code bean3 小时前
【CMake】为什么需要清理 CMake 缓存文件?深入理解 CMake 生成器切换机制
java·spring·缓存
selt7913 小时前
Redisson之RedissonLock源码完全解析
android·java·javascript
RestCloud3 小时前
智能制造的底层基建:iPaaS 如何统一 ERP、MES 与 WMS 的数据流
java·wms·erp·数据传输·ipaas·mes·集成平台