Sonarqube Sonar仅显示极少数类别的JaCoCo覆盖范围

Sonarqube Sonar仅显示极少数类别的JaCoCo覆盖范围,sonarqube,jacoco,sonar-runner,Sonarqube,Jacoco,Sonar Runner,我们正在使用Sonar Ant Runner报告项目统计数据。在ant构建运行所有测试并使用JaCoCo计算覆盖率之后,我们收集现有的报告文件。因此,我们在属性中使用“reuseReports”,见下文 现在的情况是,测试运行良好,JaCoCo捕获的覆盖率良好,JaCoCo覆盖率报告本身看起来正常,但Sonar在覆盖率部分只显示了几个类,许多类缺失 其他部分如单元测试、违规、债务等。。。听着,好吧,只是保险范围不对 构建文件看起来像这样,我们使用2.0之前的兼容格式,因为我们有许多定义为ant属

我们正在使用Sonar Ant Runner报告项目统计数据。在ant构建运行所有测试并使用JaCoCo计算覆盖率之后,我们收集现有的报告文件。因此,我们在属性中使用“reuseReports”,见下文

现在的情况是,测试运行良好,JaCoCo捕获的覆盖率良好,JaCoCo覆盖率报告本身看起来正常,但Sonar在覆盖率部分只显示了几个类,许多类缺失

其他部分如单元测试、违规、债务等。。。听着,好吧,只是保险范围不对

构建文件看起来像这样,我们使用2.0之前的兼容格式,因为我们有许多定义为ant属性的lib,并且我们还没有将它们转换为sonar.libraries=。。。格式:

    ....
<property name="sonar.dynamicAnalysis" value="reuseReports" />
<property name="sonar.sourceEncoding" value="UTF-8" />
<property name="sonar.projectVersion" value="2.0" />

<!-- surefire will become junit in some version of Sonar -->
<property name="sonar.surefire.reportsPath" value="report" />
<property name="sonar.junit.reportsPath" value="report" />

<property name="sonar.jacoco.reportPath" value="merged.exec" />

<!-- Add the target -->
<target name="sonar" depends="mergecoverage">
    <echo message="Running Sonar analysis" />

    <sonar:sonar key="${sonar.projectKey}" version="2.0" xmlns:sonar="antlib:org.sonar.ant">

         <sources>...</sources>

        <tests>...</tests>

        <binaries>...</binaries>

        <libraries>...</libraries>
    </sonar:sonar>
</target>
。。。。
...
...
...
...

我似乎没有更多的日志可以打开,有什么线索可以解释为什么Sonar只显示了几个类的覆盖范围吗?

我实际上自己找到了解决方案:它似乎是由Sonar jacoco插件中的一个bug引起的。版本1.2有一个bug,所以它只包含第一个二进制目录

这在sonar jacoco插件的1.3版中得到了修复

有关详细信息,请参阅