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