これまでに見たことのない点の 1 つは、コードに CheckStyle ルールセットを適用する IDE 用のプラグインがあるのに対し、PMD プラグインは違反のみを報告するということです。たとえば、複数のプログラミング チームによるマルチサイト プロジェクトでは、標準について報告するだけでなく、標準を積極的に実施することが重要です。
どちらのツールにも、IntelliJ、NetBeans、および Eclipse で使用できるプラグインがあります (私の見解では、これでほとんどの使用法がカバーされます)。私は NetBeans にあまり詳しくないので、IntelliJ と Eclipse についてしかコメントできません。
とにかく、IntelliJ および Eclipse 用の PMD プラグインは、プロジェクト コードベース内の PMD 違反に関するレポートをオンデマンドで生成します。
一方、CheckStyle プラグインは、その場で違反を強調表示し、(少なくとも IntelliJ については、Eclipse の経験が少ない) いくつかの問題を自動的に変換するように構成できます (たとえば、'OneStatementPerLine' の場合、CR-LF を配置します)。文の間、「NeedBraces」の場合、欠落している場所に中括弧を追加するなど)。明らかに、単純な違反のみが自動的に修正されますが、レガシー プロジェクトや複数の場所にあるプロジェクトの場合でも役立ちます。
PMD の「オンデマンド」とは、開発者がレポートを実行することを意識的に決定する必要があることを意味します。一方、Checkstyle 違反は、発生すると自動的に報告されます。PMDにはより広範なルールセットが含まれていますが、私の考えでは、IDE での違反の自動実施/報告は、2 セットのルールを維持する手間をかける価値があります。
そのため、私が取り組んでいるプロジェクトでは、IDE で適用される Checkstyle、IDE で報告される PMD、およびビルドで報告および測定される (Jenkins による)両方のツールを使用します。