【问题标题】:SonarLint is not showing all records compared to referenced SonarQube server与引用的 SonarQube 服务器相比,SonarLint 未显示所有记录
【发布时间】:2016-09-06 14:31:34
【问题描述】:

我们在连接模式下使用 SonarQube 服务器 5.3 版和 SonarLint 2.0。 作为 IDE,我们使用 Eclipse Mars 2.0,当我们将 SonarQube 服务器找到的结果与 IDE 中 SonarLint 找到的结果进行比较时,结果不同(示例文件 IDE 中的 274 个错误SonarQube 中的 826 个问题!)。

通常的区别之一是“变量可以声明为最终变量”。

我的一位将 SonarLint 用于 IntelliJIdea 的同事也有类似的问题(Idea 版本 2016.1.1,SonarLint 2.0.2,示例文件 - 与 IDE 中用于比较的相同 293 错误) .

我想知道为什么针对服务器甚至 IDE 之间存在这种差异。

有人可以帮我解决这个问题吗?谢谢。

【问题讨论】:

    标签: eclipse intellij-idea sonarqube eclipse-mars sonarlint


    【解决方案1】:

    如果您只是单击项目,它将不起作用,您需要进入项目并单击 java 文件,一旦您开始单击项目中存在的 Java 文件。您会看到 SonarLint 被激活并向您展示所有存在的错误。它对我有用

    【讨论】:

      【解决方案2】:

      我遇到了类似的问题,如下例所示: SonarLint 2.0.2:99 个问题。 SonarQube 5.4 UI:116 个问题。 属于 Checkstyle 插件的 2 条规则造成的差异。

      正如您所说的“可以将变量声明为最终变量”,我假设您缺少的问题背后的规则是 pmd:LocalVariableCouldBeFinal,它属于 PMD 插件。

      Fabrice 在 SonarQube Google Group 中评论了这个主题,他们“不会添加对任何外部引擎的支持”SonarQube Google Group(PMD、Checkstyle、Findbugs 和其他人都是如此。. .)

      很遗憾,我们只能使用 SonarLint rules list 中提到的规则,这些规则由 SonarQube 开箱即用(即他们的 Java 插件)提供。

      【讨论】:

      • 我明白了!非常感谢关于外部引擎的解释,现在它更有意义了。
      • 确实是一个非常好的答案!也许,补救措施是人们在 SonarQube 中创建一个新的质量配置文件,利用规则的映射,然后激活该配置文件,而不是 FindBugs 和 PMD 中可用的配置文件。我想这应该是对 SonarQube 产品的新功能请求——将基于 FindBugs 的配置文件提升到 SonarSource 分析器。
      【解决方案3】:

      首先,SonarQube 会对您的项目进行全面分析,而 SonarLint 仅分析您打开的文件。所以我真的不知道您对问题计数的比较有何意义(除非您在 Eclipse 中一一打开所有文件)。

      其次,SonarLint 显示比 SonarQube 更少或更多的问题有一些已知原因:

      • 某些基于度量的规则仅在 SonarQube 中计算。例如:
        • (线路或分支)覆盖范围不足
        • 评论密度不足
        • 重复代码
      • 您可能在 SonarQube 上定义了问题排除项,SonarLint 中尚未考虑这些排除项
        • 但这很快就会到来
      • 您可能在 SonarQube 上定义了源代码排除项,SonarLint 中尚未考虑这些排除项
        • 但这很快就会到来

      【讨论】:

      • 首先感谢您的回答。我很欣赏快速反应。其次-我知道对于某些问题,您需要分析多个文件(例如,不变性问题等)-但是我不认为您需要专门针对“变量可以被声明为最终”类型的错误-您应该只需要那里最近的上下文,不是吗?我在 SonarQube 上没有任何问题排除项,源代码排除项不影响测试区域。我也理解关于指标的论点 - 我会理解那些缺失的。
      • 但是,如果我专注于变量可以被声明为最终变量,我真的不明白为什么这些不显示。
      • 好的,阅读来自@jan-s 的关于外部引擎的评论,现在说得通了。
      猜你喜欢
      • 2017-11-25
      • 2016-10-10
      • 2015-12-11
      • 2016-10-27
      • 2018-01-31
      • 2017-11-22
      • 2018-03-02
      • 2017-10-18
      • 2018-03-29
      相关资源
      最近更新 更多