Jacoco eclipse插件和SonarQube中的代码覆盖率百分比值不同

uma*_*lam 5 java eclipse code-coverage jacoco sonarqube

我有一个Java项目。根据 Jacoco eclipse 插件(EclEmma Java Code Coverage 2.3.1.201405111647),该项目的代码覆盖率为 22.3%。我生成 .exec 报告并将其提供给 SonarQube 并使用声纳运行器运行分析。SonarQube Web 界面上显示的代码覆盖率为 20.2%。包级别的覆盖率值也与 Jacoco 的 eclipse 插件显示的不同。这怎么可能?SonarQube 不是从 Jacoco 生成的 .exec 报告中获取值吗?

uma*_*lam 1

Jacoco 基于字节码分析。exec 文件与类文件组合以获得最终的代码覆盖率值。我的问题是,Eclipse 编译器为 Java(针对 Jacoco eclipse 插件)生成的字节码与 Javac(在声纳运行器分析期间)生成的字节码不同。因此,这两种工具生成的代码覆盖率值是不同的。