PMD找不到规则UseSingleton

时间:2015-04-25 23:12:20

标签: java eclipse pmd

由于一些奇怪的原因,PMD给出了这个错误:

@Transactional

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

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

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

2 个答案:

答案 0 :(得分:3)

另请参阅错误报告#1339changelog for 5.3.1

的答案
  

Language Java,ruleset design.xml:规则“UseSingleton”已重命名为“UseUtilityClass”。另见错误#1059和#1339。

这已通过PMD 5.3.1及更高版本修复。

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

答案 1 :(得分:0)

您尝试将配置用于PMD> = 5.0。对于较低版本,您需要从规则参考中删除java/

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

从PMD 5.0发行说明:

  

此版本的PMD破坏了与先前版本的PMD的API兼容性,以及RuleSet XML兼容性。 maven坐标(groupId)也已更改。决定打破兼容性,允许PMD   内部和代码组织得到改进,以更好地处理额外的   语言。