排除在pom.xml中为jacoco配置并在声纳中排除文件

时间:2018-06-08 10:45:55

标签: java maven sonarqube code-coverage jacoco

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

对于jacoco:

<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中配置了属性secion:

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

我想过,一旦我使用jacoco配置排除它们,它们就不会被添加到jacoco.exec文件中,反过来也不会显示在声纳中。 但现在我似乎必须维持jacoco和声纳配置的排除,如果来自不同模块的课程,这将是一个很大的混乱......

我在这里遗漏了什么吗?这是这样的吗?保持与声纳分开的jacoco排除?

提前致谢!

1 个答案:

答案 0 :(得分:0)

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

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

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