私たちはゼロからWebプロジェクトに取り組んでおり、次の静的コード分析ツールを検討しています。
- コンベンション(Checkstyle)
- 悪い習慣(PMD)
- 潜在的なバグ(FindBugs)
プロジェクトはMaven上に構築されています。目的のために複数のツールを使用する代わりに、私は単一の柔軟なソリューションを検討していて、SonarQubeに出くわしました。
SonarQubeを使用してCheckstyle、PMD、Findbugsの結果を達成できるというのは本当ですか?
私たちはゼロからWebプロジェクトに取り組んでおり、次の静的コード分析ツールを検討しています。
プロジェクトはMaven上に構築されています。目的のために複数のツールを使用する代わりに、私は単一の柔軟なソリューションを検討していて、SonarQubeに出くわしました。
SonarQubeを使用してCheckstyle、PMD、Findbugsの結果を達成できるというのは本当ですか?
Sonar は、CheckStyle、FindBugs、PMD、および Java プロジェクトの Cobertura (コード カバレッジ) などの他のいくつかの「プラグイン」をデフォルトで実行します。ただし、主な付加価値は、履歴をデータベースに保存することです。その後、傾向を見ることができます。コードベースを改善していますか、それともその逆ですか? それを教えてくれるのは、メモリを備えたツールだけです。
CI システムで Sonar を実行して、実行に時間がかかるもの (CPD – コピー ペースト検出器など) も実行できるようにする必要があります。そして、あなたはあなたの歴史を持つことになります。たとえば、Eclipse プラグインを使用すると、違反をより早く検出できますが、これは素晴らしいことですが、実行に時間がかかりすぎたり、「高品質のプラグイン」 (CPD をスキップしたり、コードカバレッジ分析をスキップします)。そして、あなたは歴史を持っていません。
また、Sonarは「ダッシュボード」スタイルのビジュアルレポートを生成します。これにより、非常に簡単に把握できます。Jenkins の Sonar を使用すると、過去数週間および数か月にわたってコード ベースの品質に対して実行された作業の効果を、開発者と管理者に示すことができます。
Sonar はこれら 3 つのツールをプラグインとして使用し、3 つすべてからのデータを集約して、これらのツールからグラフなどを表示することで付加価値を提供します。したがって、それらはソナーを補完します。
はいといいえ。他の回答に加えて。
SonarQube は現在、PMD、Checkstyle、および Findbugs を非推奨にし、独自のテクノロジを使用して Java コード ( SonarJavaと呼ばれる) を分析しようとしています。彼らがそうするのは、たとえば古いライブラリを使用するライブラリ (Java 8 など) の修正、アップグレード (または待機) に時間を費やしたくないからです。
また、 SonarLintと呼ばれる個人用 IDE 用の新しいプラグイン セットも入手しました。
Sonarは素晴らしいですが、前述のツールを個別に使用し、それでも優れたグラフを使用したい場合は、JenkinsCIビルドの一部としてAnalysisCollectorプラグインを使用できます。これのわずかな利点は、別のSonarサーバーに依存するのではなく、PMD / Findbugs / Checkstyle構成をSCMにチェックインして、Mavenビルドに統合できることです。
ソナーは、これらのツールだけではありません。最大の利点は、何でも簡単に構成できる GUI です。それが提供する統計は非常に詳細です (コード行など)。また、テストカバレッジなどの優れたサポートも提供します:)
ここでよく見ることができます:http: //nemo.sonarsource.org/
誰かがルールに違反した場合、これらのツールは maven ビルドに失敗する可能性があるため、ソナーに加えてこれらのツールを引き続き使用します。ソナーはより遡及的です。