2016-10-03 1679 views

回答

34

SonarLint只能在IDE(IntelliJ,Eclipse和Visual Studio)中生存。其目的是在您键入代码时提供即时反馈。为此,它专注于您添加或更新的代码。

SonarQube是处理全分析中央服务器(由各个SonarQube扫描仪触发)。其目的是为您的代码库提供360°的视角。为此,它定期分析项目的所有源代码行。

两个SonarLint和SonarQube依赖于相同的静态源代码分析 - 大部分使用SonarSource技术被写入。

+0

Thanks @Fabrice!但是有一个后续问题。对于相同版本的代码库,我发现sonarqube和sonar lint的报告存在差异。这是导致我写这个问题的原始问题。可能是什么问题? –

+1

您应该将SonarLint“连接”到SonarQube并将本地项目(在IDE中)绑定到远程项目(在SonarQube中),以确保您在两个世界中都使用相同的质量配置文件(=规则集)。 –

+0

谢谢Fabrice。这也可能意味着不同的版本会有不同的规则集可以给出不同的报告吗?就像对于相同版本的代码库,v5.6和v6.0报告之间可能有所不同。 –

5

应该补充一点,SonarQube还可以与第三方分析仪(findBugs,checkstyle,PMD)进行扫描,而SonarLint 不包括那些。我认为原因是性能优先和依赖于java字节码的findBugs。

从而SonarQube和SonarLint你的发现可以改变,如果底层质量配置文件使用第三方扫描仪。

+1

你是对的@guitarlum,主要原因不是你提到的那个,而是我们真正的事实相信SonarJava(由SonarSource开发的Java分析器)完全超过了PMD + Findbugs。 –