SonarQubeはSonarLintとどのくらい正確に違いますか? SonarQubeにはサーバーが関連付けられており、Sonar lintはプラグインのように機能します。しかし、それらの具体的な違いは何ですか?
SonarLint はIDE(IntelliJ、Eclipse、およびVisual Studio)にのみ存在します。その目的は、コードを入力するとすぐにフィードバックを提供することです。このため、追加または更新するコードに集中します。
SonarQube は、完全な分析を処理する中央サーバーです(さまざまなSonarQubeスキャナーによってトリガーされます)。その目的は、コードベースの品質に関する360度のビジョンを提供することです。このため、プロジェクトのすべてのソース行を定期的に分析します。
SonarLintとSonarQubeはどちらも同じ静的ソースコードアナライザーに依存しています-それらのほとんどはSonarSourceテクノロジーを使用して記述されています。
SonarQubeは、サードパーティのアナライザー(findBugs、checkstyle、PMD)でもスキャンを実行しますが、SonarLint doesはそれらを含めます。その理由は、パフォーマンスの優先順位付けとfindBugsがJavaバイトコードに依存しているためだと思います。
そのため、基礎となる品質プロファイルがサードパーティのスキャナーを使用している場合、SonarQubeとSonarLintの結果は異なる可能性があります。
SonarQubeは、プロジェクトをホストして分析を実行できるサーバーです。一方、SonarLintは、このSonarQubeに接続して分析をリモートで実行できるエージェントです。 SonarLintはIDEとともに使用することも、CLIコマンドを介して実行することもできます。
SonarLintには独自のデフォルトルールセットが含まれていますが、SonarQubeに接続すると、ユーザーはSonarQubeからルールをインポートできます。これは実際には単なる標準のルールセットではありません。 SonarQubeでPDM、CodeStyle、その他の多くのチェッカーを統合し、カスタムルールを作成できます。
私の経験から学んだ2つの事実、SonarLintはSonarCubeからこれらのカスタムルールを継承しません。次に、Sonarはテストクラスでは動作しません。
Sonarqubeはサーバー上でルール検証を実行しますTFSビルドに統合しました。 SonarLintはIDEで実行されるため、コードをコミットする前に、どの行がIDE内のどのルールに違反しているかがわかります。