Sonarqube 声纳qube和声纳lint差异

Sonarqube 声纳qube和声纳lint差异,sonarqube,sonarlint,Sonarqube,Sonarlint,SonarQu和SonarLint到底有什么不同?SonarQube有一个与之关联的服务器,Sonar lint的工作方式更像一个插件。但它们的具体区别是什么 只存在于IDE中(IntelliJ、Eclipse和Visual Studio)。它的目的是在您键入代码时提供即时反馈。为此,它将重点放在要添加或更新的代码上 是一个处理完整分析(由各种SonarQube扫描仪触发)的中央服务器。它的目的是让您对代码库的质量有一个360度的了解。为此,它会定期分析项目的所有源代码行 SonarLint和S

SonarQu和SonarLint到底有什么不同?SonarQube有一个与之关联的服务器,Sonar lint的工作方式更像一个插件。但它们的具体区别是什么

只存在于IDE中(IntelliJ、Eclipse和Visual Studio)。它的目的是在您键入代码时提供即时反馈。为此,它将重点放在要添加或更新的代码上

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


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

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


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

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

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


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

SonarQube在服务器上运行规则有效性,我们将其集成到TFS构建中。SonarLint在IDE中运行,因此在提交代码之前,我知道哪些行违反IDE中的哪些规则。

谢谢@Fabrice!但还有一个问题。我发现同一版本代码库的sonarqube和sonar lint的报告存在差异。这就是导致我写这个问题的最初问题。可能是什么问题?您应该将SonarLint“连接”到SonarQube,并将本地项目(在IDE中)绑定到远程项目(在SonarQube中),以确保在两个世界中使用相同的质量配置文件(=规则集)。谢谢Fabrice。这也可能意味着不同的版本会有不同的规则集可以提供不同的报告,对吗?对于相同版本的代码库,v5.6和v6.0报告之间可能存在差异;本文帮助我理解了三种不同SonarQube发射模式之间的区别:分析(谁在SonarQube UI中生成报告)、预览和增量(SonarLint使用)。您是对的@guitarlum,主要原因不是您提到的那个,但事实是我们确实相信SonarJava(SonarSource开发的Java分析器)超过了PMD+Findbugs。@Fabrice SonarSourceTeam我理解您的推理,对于默认的Findbugs和PMD,这可能是正确的,然而,在应用程序安全领域,即FindSecurityBugs(),我认为这是最好的漏洞扫描,SonarJava没有做到这一点?你的回答是这个问题的前提。问题中已经提到了服务器和插件。