SonarQube和SonarLint的区别

时间:2016-10-03 09:38:50

标签: sonarqube sonarlint

sonarQube究竟与SonarLint有何不同? SonarQube有一个与之关联的服务器,Sonar lint更像是一个插件。但他们的具体区别是什么?

4 个答案:

答案 0 :(得分:82)

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

SonarQube是一个处理完整分析的中央服务器(由各种SonarQube扫描仪触发)。其目的是为您提供360°的代码库质量愿景。为此,它会定期分析项目的所有源代码行。

SonarLint和SonarQube都依赖于相同的静态源代码分析器 - 其中大多数是使用SonarSource技术编写的。

答案 1 :(得分:17)

应该补充一点,SonarQube还使用第三方分析器(findBugs,checkstyle,PMD)执行扫描,而SonarLint 包括那些。我认为原因是性能优先,findBugs依赖java字节码。

因此,如果基础质量配置文件使用第三方扫描仪,您在SonarQube和SonarLint中的发现可能会有所不同。

答案 2 :(得分:1)

SonarQube 是一个服务器,您可以在其中托管项目并执行分析,而 SonarLint 是一个代理,可以让我们连接此SonarQube并远程执行分析。 SonarLint可以与IDE一起使用,也可以通过CLI命令执行。

SonarLint包含其自己的默认规则集,但是当连接到SonarQube时,用户可以从SonarQube导入规则,这些规则实际上不仅仅是标准规则集。我们可以在SonarQube上集成PDM,CodeStyle和许多其他检查器,并创建自定义规则。

我想提到的两个事实是我从经验中学到的,SonarLint不会继承SonarCube的那些自定义规则,其次,Sonar不适用于Test类。

答案 3 :(得分:0)

Sonarqube在服务器上运行规则验证,并将其集成到TFS构建中。 SonarLint在IDE中运行,因此在提交代码之前,我知道哪些行违反了IDE中的哪些规则。