SonarQubeとSonarLintの違い


89

sonarQubeはSonarLintとどのくらい正確に異なりますか?SonarQubeにはサーバーが関連付けられており、Sonarlintはプラグインのように機能します。しかし、それらの具体的な違いは何ですか?

回答:


131

SonarLintは、IDE(IntelliJ、Eclipse、およびVisual Studio)にのみ存在します。その目的は、コードを入力するときに即座にフィードバックを提供することです。このため、追加または更新するコードに重点を置いています。

SonarQubeは、完全な分析を処理する中央サーバーです(さまざまなSonarQubeスキャナーによってトリガーされます)。その目的は、コードベースの品質の360°ビジョンを提供することです。このために、プロジェクトのすべてのソース行を定期的に分析します。

SonarLintとSonarQubeはどちらも、同じ静的ソースコードアナライザーに依存しています。それらのほとんどは、SonarSourceテクノロジーを使用して記述されています。


ありがとう@Fabrice!しかし、1つのフォローアップの質問。同じバージョンのコードベースのsonarqubeとsonarlintのレポートに違いがあります。これが私がこの質問を書くようになった最初の問題でした。何が問題になる可能性がありますか?
Jeevan Varughese 2016年

7
両方の世界で同じ品質プロファイル(=ルールセット)を使用していることを確認するために、SonarLintをSonarQubeに「接続」し、ローカルプロジェクト(IDE内)をリモートプロジェクト(SonarQube内)にバインドする必要があります。
ファブリス-SonarSourceチーム2016年

ファブリスに感謝します。これは、バージョンが異なれば、ルールセットが異なればレポートも異なる可能性があることを意味する場合もあります。同じバージョンのコードベースのv5.6レポートとv6.0レポートには違いがあるようです。
Jeevan Varughese 2016年

1
これは面白いと思うかもしれません。この記事は、分析(SonarQube UIでレポートを生成する)、プレビュー、インクリメンタル(SonarLintで使用)の3つの異なるSonarQube起動モードの違いを理解するのに役立ちました。blog.sonarsource.com/…–YB
原因

23

SonarQubeはサードパーティのアナライザー(findBugs、checkstyle、PMD)でもスキャンを実行しますが、SonarLintにはそれらが含まれていないことを追加する必要があります。その理由は、パフォーマンスとfindBugsがJavaバイトコードに依存していることを優先しているためだと思います。

そのため、基礎となる品質プロファイルでサードパーティのスキャナーが使用されている場合、SonarQubeとSonarLintでの結果は異なる可能性があります。


2
あなたは正しい@guitarlumであり、主な理由はあなたが言及したものではありませんが、SonarJava(SonarSourceによって開発されたJavaアナライザー)がPMD + Findbugsよりも完全に重要であると私たちが本当に信じているという事実です。
ファブリス-SonarSourceチーム2017年

3
@ Fabrice-SonarSourceTeam私はあなたの推論を理解しています、そしてこれはデフォルトのFindBugsとPMDに当てはまるかもしれませんが、アプリケーションセキュリティの分野、すなわちFindSecurityBugs(find-sec-bugs.github.io)では、私の意見では最高の脆弱性スキャンです、 SonarJavaは不十分です。
Guitarlum 2018年

4

SonarQubeは、プロジェクトをホストして分析を実行できるサーバーですが、SonarLintは、このSonarQubeに接続して分析をリモートで実行できるようにするエージェントです。SonarLintは、IDEで使用することも、CLIコマンドを介して実行することもできます。

SonarLintには独自のデフォルトルールのセットが含まれていますが、SonarQubeに接続すると、ユーザーはSonarQubeからルールをインポートできます。これは、実際には単なる標準のルールセットではありません。PDM、CodeStyle、その他多くのチェッカーをSonarQubeに統合して、カスタムルールを作成できます。

私の経験から学んだ2つの事実、SonarLintはSonarQubeからこれらのカスタムルールを継承しません。次に、Sonarはテストクラスでは機能しません。


0

Sonarqubeはサーバー上でルール検証を実行します。TFSビルドに統合しました。SonarLintはIDEで実行されるため、コードをコミットする前に、IDE内のどのルールに違反している行があるかがわかります。


問題は、スキャナーがどのように異なるかについてでしたか?あなたの答えは質問の前提として与えられます。サーバーとプラグインはすでに質問で言及されています。
JeevanVarughese19年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.