現在、Java には静的コード分析用のツールがたくさんあります。
例えば:
- PMD
- CPD
- バグを見つける
- チェックスタイル
- ソナー
- JDepend
等
これらすべてのツールを 1 つのアプリケーションで使用するのは良いことですか (Maven を使用すると、ネガティブなシナリオの場合にビルドが失敗します)。それらは互換性がありますか、またはほぼ同じようにチェックしますか? それともただの過剰になりますか?これらのツールにはいくつかのカテゴリがありますか?
現在、Java には静的コード分析用のツールがたくさんあります。
例えば:
等
これらすべてのツールを 1 つのアプリケーションで使用するのは良いことですか (Maven を使用すると、ネガティブなシナリオの場合にビルドが失敗します)。それらは互換性がありますか、またはほぼ同じようにチェックしますか? それともただの過剰になりますか?これらのツールにはいくつかのカテゴリがありますか?
Sonar の目的は、すべてのコア分析エンジン (PMD、Findbugs、Checkstyle など) からの結果を集約することです。そのため、Sonar にはこれらすべてのツールに加えて、さらに多くのツールが組み込まれています。
したがって、私のアドバイスは、Sonar に基づいて継続的な検査サーバーをセットアップすることです。他のツールについて心配する必要はありません。Sonar を使用すると、それらすべてを最大限に活用できます。
継続的な検査に関する次のブログ エントリを読むことができます: http://www.sonarsource.org/continuous-inspection-practice-emerges-with-sonar/
それらは交換可能ではありませんが、同じアプリケーションですべてを必要とするわけではありません。
カテゴリー:
私は FindBugs のみを使用します - 偉大なツールです。問題/潜在的な問題の場所を定義するのに本当に役立ちます。
しかし、FindBugs が冗長なエラー/警告を出すように実装する必要があるコードがある場合もあります。いくつかの注釈で抑制できると思います。
しかし、優れたコード レビューをこのツールで置き換えることは決してありません。
適用するルールのセットによって異なります。別のツールを使用することは、それが追加のチェックを提供する場合にのみ意味があります。もう1つの問題は、互いに矛盾するルールをチェックしないようにすべてのツールを構成する必要があることです。そして最後に、冗長な警告がたくさん表示されます。結論:必要なすべてのチェックを提供するツールの最小限のセットを見つけるようにしてください。