到目前为止我还没有看到的一点是,IDE 的插件会在您的代码上强制执行 CheckStyle 规则集,而 PMD 插件只会报告违规行为。例如,在多个编程团队的多站点项目中,积极执行标准很重要,而不仅仅是报告标准。
这两种工具都有可用于 IntelliJ、NetBeans 和 Eclipse 的插件(在我看来,这涵盖了大多数使用情况)。我对 NetBeans 不是很熟悉,所以只能评论 IntelliJ 和 Eclipse。
无论如何,IntelliJ 和 Eclipse 的 PMD 插件将根据需要生成项目代码库中 PMD 违规的报告。
另一方面,CheckStyle 插件会即时突出显示违规行为,并且可以(至少对于 IntelliJ,我对 Eclipse 的经验较少)配置为自动转换一些问题(例如,对于“OneStatementPerLine”,将放置 CR-LF在语句之间,对于“NeedBraces”,将在缺少大括号的地方添加大括号等)。显然,只有更简单的违规可以自动修复,但它仍然有助于遗留项目或位于多个位置的项目。
PMD 的“按需”意味着开发人员必须有意识地决定运行报告。而 Checkstyle 违规会在开发过程中自动报告给他们。虽然 PMD确实包含更广泛的规则集,但在我看来,自动执行/报告 IDE 中的违规行为值得维护两套规则的麻烦。
因此,对于我从事的任何项目,我们都使用这两种工具,在 IDE 中强制执行 Checkstyle,在 IDE 中报告 PMD,并在构建中报告和测量(通过 Jenkins)。