117

私たちはゼロからWebプロジェクトに取り組んでおり、次の静的コード分析ツールを検討しています。

  • コンベンション(Checkstyle)
  • 悪い習慣(PMD)
  • 潜在的なバグ(FindBugs)

プロジェクトはMaven上に構築されています。目的のために複数のツールを使用する代わりに、私は単一の柔軟なソリューションを検討していて、SonarQubeに出くわしました。

SonarQubeを使用してCheckstyle、PMD、Findbugsの結果を達成できるというのは本当ですか?

4

8 に答える 8

108

Sonar は、CheckStyle、FindBugs、PMD、および Java プロジェクトの Cobertura (コード カバレッジ) などの他のいくつかの「プラグイン」をデフォルトで実行します。ただし、主な付加価値は、履歴をデータベースに保存することです。その後、傾向を見ることができます。コードベースを改善していますか、それともその逆ですか? それを教えてくれるのは、メモリを備えたツールだけです。

CI システムで Sonar を実行して、実行に時間がかかるもの (CPD – コピー ペースト検出器など) も実行できるようにする必要があります。そして、あなたはあなたの歴史を持つことになります。たとえば、Eclipse プラグインを使用すると、違反をより早く検出できますが、これは素晴らしいことですが、実行に時間がかかりすぎたり、「高品質のプラグイン」 (CPD をスキップしたり、コードカバレッジ分析をスキップします)。そして、あなたは歴史を持っていません。

また、Sonarは「ダッシュボード」スタイルのビジュアルレポートを生成します。これにより、非常に簡単に把握できます。Jenkins の Sonar を使用すると、過去数週間および数か月にわたってコード ベースの品質に対して実行された作業の効果を、開発者と管理者に示すことができます。

于 2011-09-19T15:27:39.753 に答える
50

Sonar はこれら 3 つのツールをプラグインとして使用し、3 つすべてからのデータを集約して、これらのツールからグラフなどを表示することで付加価値を提供します。したがって、それらはソナーを補完します。

于 2011-03-30T06:00:59.260 に答える
36

はいといいえ。他の回答に加えて。

SonarQube は現在、PMD、Checkstyle、および Findbugs を非推奨にし、独自のテクノロジを使用して Java コード ( SonarJavaと呼ばれる) を分析しようとしています。彼らがそうするのは、たとえば古いライブラリを使用するライブラリ (Java 8 など) の修正、アップグレード (または待機) に時間を費やしたくないからです。

また、 SonarLintと呼ばれる個人用 IDE 用の新しいプラグイン セットも入手しました。

于 2014-07-06T14:51:41.223 に答える
9

Sonarは素晴らしいですが、前述のツールを個別に使用し、それでも優れたグラフを使用したい場合は、JenkinsCIビルドの一部としてAnalysisCollectorプラグインを使用できます。これのわずかな利点は、別のSonarサーバーに依存するのではなく、PMD / Findbugs / Checkstyle構成をSCMにチェックインして、Mavenビルドに統合できることです。

于 2013-02-25T13:34:35.167 に答える
5

ソナーは、これらのツールだけではありません。最大の利点は、何でも簡単に構成できる GUI です。それが提供する統計は非常に詳細です (コード行など)。また、テストカバレッジなどの優れたサポートも提供します:)

ここでよく見ることができます:http: //nemo.sonarsource.org/

于 2011-03-30T06:13:42.090 に答える
4

誰かがルールに違反した場合、これらのツールは maven ビルドに失敗する可能性があるため、ソナーに加えてこれらのツールを引き続き使用します。ソナーはより遡及的です。

于 2011-11-22T18:05:09.730 に答える