首页 文章

Eclipse / SonarQube集成:如何处理Checkstyle / PMD / FindBugs

提问于
浏览
4

如果我使用Eclipse并希望使用SonarQube作为代码规则的单一来源,我理解我需要使用SonarLint插件 . 但是,SonarLint只会检查squid规则,没有Checkstyle / PMD / Findbugs规则(尽管它们可以在SonarQube中使用) .

我的问题:如果项目一直在使用Checkstyle / PMD / Findbugs规则集,那么应该如何处理这些规则以便Eclipse开发人员也可以看到它们?

请考虑以下几点:

  • 我不太麻烦 .

  • 我看到一些Checkstyle / PMD / Findbugs被标记为已弃用且有鱿鱼替换 . 没关系 . 但是我如何处理所有未弃用的规则?

2 回答

  • 1

    这是SonarLint开发人员提供解决方案的建议:SonarLint应该能够从SonarQube检索所有违规并将其显示在Eclipse的标准"Problems"视图中 . 像这样,SonarLint不需要在本地执行Checkstyle / Findbugs / PMD规则,因此不存在兼容性/支持问题 . 与此同时,Eclipse开发人员可以在不离开Eclipse的情况下查看所有违规行为 .

  • 1

    这就是我们解决这个问题的方法(90%解决方案):

    • 用推荐的squid规则替换了所有已弃用的Checkstyle / PMD / FindBugs规则 . - >这留下了超过80个Checkstyle,16个PMD和0个FindBugs规则(和60个鱿鱼规则),消除了FindBugs .

    • 在Eclipse中使用SonarLint Checkstyle插件 . 对于Checkstyle,我们从SonarQube导出规则XML,将它们放在我们的版本控制中并配置Checkstyle插件以使用它 .

    • 忽略Eclipse中的PMD并使用对SonarQube的直接浏览器访问来查看代码审查中的PMD规则违规 . 这使我们免于为"only 16 rules"安装/配置PMD .

    该解决方案使我们的约90%的规则在Eclipse中可见 . 我们支付的价格:

    • 安装并配置2个插件用于规则检查而不是1 .

    • 每当SonarQube更新导致更改时,手动保持Checkstyle规则XML最新 .

    • squid规则违规仅对打开的类可见,并且在单独的"SonarLint On-the-fly"视图中 .

    • 只有90%的规则直接在Eclipse中可见 .

    如果有一天SonarLint会在Eclipse的标准"Problems"视图中显示所有SonarQube规则违规,包括工作空间和选择范围,我们将非常高兴 . 然后我们只需要一个Eclipse插件,而SonarQube将是唯一的规则库 .

相关问题