我有一个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排除?
提前致谢!
答案 0 :(得分:0)
sonar.exclusions
参数定义扫描程序应该忽略哪些文件。这意味着这些文件不会在SonarQube中显示。
在测试执行期间,JaCoCo代理会跳过从JaCoCo报告中排除的文件。
当扫描程序扫描未包含在JaCoCo报告中的文件时,它们将显示在SonarQube中,但没有代码覆盖率信息。当扫描程序忽略文件(它们的路径匹配sonar.exclusions
)时,它们不会显示在SonarQube中 - 无论它们是否包含在JaCoCo报告中。