如何找到 pmd 规则集的 xml 名称

How to find xml name for pmd ruleset

这可能是一件相当简单的事情,但我对无法弄清楚它感到沮丧。我已经为我的 pom 添加了一个用于 maven 的 PMD 插件,现在我想添加一些规则集。如何将索引中列出的那些与我需要在我的 pom 中指定的 XML 文件相匹配?

例如,我如何从 PMD 规则集索引中知道: http://pmd.sourceforge.net/pmd-4.3.0/rules/index.html

如果我想使用 java 日志记录规则集,我需要添加

<ruleset>rulesets/java/logging-java.xml</ruleset>

到我的 pom?索引中的规则集名称与您需要在 POM 中指定的 XML 文件名之间似乎没有映射。我在这里错过了什么?

(我只是偶然发现了这个似乎列出了很多问题的问题:How to included bundled rulesets in maven pmd plugin

文件名和规则集名称只有弱相关。我不认为有一个方案将它们联系起来。它们只是为它们工作的开发人员选择的名称。 rulesets/java/logging-java.xml 就是一个很好的例子,因为规则集的名称是 Java Logging,文件名是 logging-java.

PMD 通过将路径加载为资源来解析与其捆绑的路径。 Java 的最新捆绑规则集是 https://github.com/pmd/pmd/tree/master/pmd-java/src/main/resources/rulesets/java

我在禁用规则集中的规则时遇到了问题。我最终发现该规则已移至我使用的版本中的另一个规则集。生成的 XML 报告有一个版本属性,指向正确的版本。您需要确保您查看的是与您正在使用的版本相关的索引。我不认为您正在查看的规则集索引适用于您正在使用的 PMD 版本。

如果我查看 http://pmd.sourceforge.net/pmd-5.2.3/pmd-java/rules/index.html 并忽略文章正文中的链接。规则集 > Java 下左侧菜单中的链接指向 HTML 与 XML 规则集同名的文档。

页面 http://pmd.sourceforge.net/pmd-5.2.3/pmd-java/rules/java/logging-java.html 记录了从 ruleset/java/logging-java.xml 加载的规则集。