【问题标题】:SonarQube - Combining Sonar way, FindBugs, PMD and Checkstyle without duplicatesSonarQube - 结合声纳方式、FindBugs、PMD 和 Checkstyle 没有重复
【发布时间】:2015-03-22 09:38:10
【问题描述】:
我正在寻找将 SonarQube 与 FindBugs、PMD 和 Checkstyle 插件结合使用的最佳实践。
- SonarQube 的默认质量配置文件“Sonar way”中的规则如何
与那些插件有关?它们是完全不同的规则,还是 Sonar 方式包含这些插件中最重要的规则?
- 组合这些规则集的最佳方式是什么?如何避免重复检查?
- Sonar v.3.x 包含“Sonar way with Findbugs”配置文件。我在 v.4.5.1 中找不到它 - 它发生了什么?
【问题讨论】:
标签:
sonarqube
sonarqube-4.5
【解决方案1】:
SonarQube Java 插件本身就已经涵盖了所有的 Checkstyle 和 PMD 规则——这就是为什么相关插件不再捆绑在 SonarQube 中的原因。这样你就可以摆脱那些插件,忘记相关的规则。
关于 Findbugs,大多数规则都是对 SonarQube Java 插件规则的补充。不再有“使用 Findbugs 的声纳方式”配置文件,因为这是所有语言插件只有一个“声纳方式”配置文件的约定。
【讨论】:
-
(部分)重复规则的一个示例是findbugs:UUF_UNUSED_FIELD 和squid:S1068。 squid 规则比 findBugs 规则匹配得更多。另一方面,它没有找到包私有字段,而这些字段又由 findBugs 找到。不过也有一些重复。此外,技术债务也有很大不同(5 分钟对 30 分钟)。我可以在某处为 SonarQube 贡献这样的经验吗?
-
-
@Fabrice-SonarQubeTeam 因为什么版本的 PMD 规则已经包含在 SonarQube Java 插件中?与这个旧的Jira issue 相关,我们需要一个新的 Java Android 配置文件(可能是 Java+Lint+PMD+FindBugs)。配置它的最佳方法是什么?
-
SonarQube 支持 CheckStyle 的所有检查是不正确!例如,参见AnnotationLocation 规则。