我们最近升级到 SonarCube 4.3.2。在他以前的版本中(不记得它是什么),可以选择 Jacoco 作为代码覆盖分析器,并将 Maven 中的排除定义为一个简单的属性;
例如
<properties>
<sonar.jacoco.excludes>*/cache/*:*/*Application.java</sonar.jacoco.excludes>
</properties>
有了这个版本的 SonarCube,选择 Jacoco 的选项不再存在,所以我试图让它以另一种方式工作。关于这个主题的很多很多帖子,但没有一个能解决我的问题。我设法排除了类,但这些在 SonarCube 中显示为 0%(并降低了总覆盖率)。通过上述属性排除似乎不再起作用。
在我的 pom 中,我添加了以下插件:
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.6.0.201210061924</version>
<configuration>
<excludes>
<exclude>**/SonarTest*</exclude>
</excludes>
</configuration>
<executions>
<execution>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
</executions>
</plugin>
配置似乎没问题,因为在 Jacoco 报告中,该类被完全排除在外。SonarTest 已进行部分测试,但使用此配置,它在 Sonar 中显示为 0%,因此似乎排除在一定程度上起作用。我如何通知 Sonar 这些被排除的类应该在覆盖范围内完全忽略。