私がこれまで見たことがない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セットのルールを維持する手間をかける価値があります。
だから私たちは両方のツールを使用して、上で動作するすべてのプロジェクトのために、Checkstyleは、IDEで施行、PMDはIDEで報告され、両方がビルドで(ジェンキンス経由)に報告して測定しました。