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