【问题标题】:PMD can't find rule UseSingletonPMD 找不到规则 UseSingleton
【发布时间】:2015-04-28 02:08:09
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: java eclipse pmd


    【解决方案1】:

    另请参阅错误报告 #1339changelog for 5.3.1 上的答案:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      来自 PMD 5.0 发行说明:

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

      【讨论】:

        猜你喜欢
        • 2012-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-09
        • 1970-01-01
        • 2016-07-05
        • 1970-01-01
        相关资源
        最近更新 更多