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

时间:2017-06-14 20:46:12

标签: eclipse sonarqube checkstyle pmd sonarlint

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

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

请考虑以下几点:

  • 我不想手动从SonarQube导出规则并为Checkstyle / PMD / Findbugs安装Eclipse插件,并使用导出的规则对其进行配置。那太麻烦了。
  • 我看到一些Checkstyle / PMD / Findbugs被标记为已弃用且有鱿鱼替换。没关系。但是我如何处理所有未弃用的规则?

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

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

  1. 使用推荐的squid规则替换所有已弃用的Checkstyle / PMD / FindBugs规则。 - >这留下了80多个Checkstyle,16个PMD和0个FindBugs规则(以及60个鱿鱼规则),消除了FindBugs。
  2. 在Eclipse中使用SonarLint + Checkstyle插件。对于Checkstyle,我们从SonarQube导出规则XML,将它们放在我们的版本控制中并配置Checkstyle插件以使用它。
  3. 忽略Eclipse中的PMD并使用对SonarQube的直接浏览器访问来查看代码审查中的PMD规则违规。这使我们免于安装/配置PMD“仅16条规则”。
  4. 该解决方案使我们大约90%的规则在Eclipse中可见。我们支付的价格:

    • 安装&为规则检查配置2个插件而不是1。
    • 每当SonarQube更新导致更改时,手动将Checkstyle规则XML保持最新。
    • 仅针对已打开的类以及单独的“SonarLint On-the-fly”视图可见的squid规则违规。
    • 只有90%的规则直接在Eclipse中可见。

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