java - 排除 pom.xml 中为 jacoco 配置的内容并排除 sonar 中的文件

标签 java maven sonarqube code-coverage jacoco

我有一个 Java Multi maven 项目,我为每个子模块配置了 Jacoco maven 插件,以排除我不需要覆盖率报告的文件。 我虽然成功了,因为我没有看到我在 jacoco 生成的 html 报告中排除的这些文件。 我假设这些类文件已从 jacoco.exec 文件中排除。 现在,我在 SonarQube 中使用这些积累的 jacoco.exec 文件,并且看到了所有子模块的覆盖范围,但是当我输入类详细信息时,我再次看到了我定义要排除的类。 因此,我必须使用 sonar.exclusions 属性再次定义这些排除项,以免在 Sonar 中看到它们。

对于雅 cocoa :

<build>
    <plugins>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <configuration>
                <excludes>
                    <exclude>**/*JavaProjectApiModule.class</exclude>
                </excludes>
            </configuration>
        </plugin>
    </plugins>
  </build>

对于 Sonar,我在父 pom.xml 的属性部分中配置:

<sonar.exclusions>
        **/JavaProjectApiAModule.java
</sonar.exclusions>

我想一旦我使用 jacoco 配置排除它们,它们将不会被添加到 jacoco.exec 文件中,进而不会显示在 Sonar 中。 但现在看来我必须维护 jacoco 和 Sonar 配置的排除,如果来自不同模块的类会变得一团糟......

我在这里遗漏了什么吗?是这样吗?维护与 Sonar 分离的 jacoco 的排除项?

提前致谢!

最佳答案

sonar.exclusions 参数定义扫描仪应忽略哪些文件。这意味着这些文件不会显示在 SonarQube 中。

在测试执行期间,JaCoCo 代理会跳过从 JaCoCo 报告中排除的文件。

当扫描仪扫描 JaCoCo 报告中未包含的文件时,它们会显示在 SonarQube 中,但没有代码覆盖率信息。当扫描仪忽略文件(它们的路径与 sonar.exclusions 匹配)时,它们不会显示在 SonarQube 中 - 无论它们是否包含在 JaCoCo 报告中。

关于java - 排除 pom.xml 中为 jacoco 配置的内容并排除 sonar 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50758929/

相关文章:

ServerSocket.accept() 返回的 Java 客户端套接字

java - 通过 Jenkins 作业进行 maven 部署的策略

c# - 如何在 ASP.NET Web 应用程序的 docker 中的 sonarqube 中执行代码分析

java - 为某些代码关闭 Sonar

sonarqube - 如何将 OWASP 插件设置为 sonarqube

java - 如何接收索引并显示其 ASCII 字符?

java - JavaFX 2 小程序能否请求焦点并因此关注浏览器/选项卡?

java - 一个类如何扩展两个不同的类,其中一个类来自外部库,另一个类是内置的

java - JpaRepository findAll 返回空列表

java - Maven pom xml 变量