PMD 找不到规则使用单例



出于某种奇怪的原因,PMD给出了这个错误:

An internal error occurred during: "ReviewCode".
    Unable to find referenced rule UseSingleton; perhaps the rule name is mispelled?

这是我的规则集中声明此规则的方式.xml:

   <rule ref="rulesets/java/design.xml/UseSingleton"/>

我正在使用带有 4.0.6 PMD 插件版本的 Eclipse Kepler。我做错了什么?

另请参阅错误报告 #1339 和 5.3.1 更新日志上的答案:

语言Java,规则集设计.xml:规则"UseSingleton"已重命名为"UseUtilityClass"。另请参阅错误 #1059 和 #1339。

此问题已在 PMD 5.3.1 及更高版本中修复。

目前,您需要手动修复规则集文件并将UseSingleton替换为UseUtilityClass。我建议关闭 eclipse,在您的工作区中找到 ruleset.xml 文件,更改它,然后启动 eclipse。

您尝试对 PMD>= 5.0 使用 config。对于较低版本,您需要从规则引用中删除java/

<rule ref="rulesets/design.xml/UseSingleton"/>

来自 PMD 5.0 发行说明:

此版本的 PMD 破坏了 API 与以前版本的 PMD 的兼容性,以及规则集 XML 兼容性。此外,maven 坐标 (groupId) 也已更改。破坏兼容性的决定允许 PMD 内部和代码组织有待改进,以更好地处理其他 语言。

最新更新