我在Eclipse Kepler中使用了eclipse-pmd 0.9版本。现在我在Eclipse Mars中使用eclipse-pmd 1.7版。
我尝试使用相同的PMD配置(简化为一条规则):
<?xml version="1.0"?>
<ruleset>
<rule ref="rulesets/java/basic.xml/EmptyCatchBlock">
<priority>1</priority>
</rule>
</ruleset>
但我总是得到消息:
pmd.xml不是有效的PMD规则集配置
该规则集有什么问题?
eclipse-pmd的Changelog表示PMD从5.1变为5.4。
我发现PMD 5.1.1为Migration guide,但PMD 5.4没有。{是否有PMD 5.4的迁移指南?
答案 0 :(得分:1)
我找到了一个解决方案,请参阅changelog:
删除规则:
- 基本:规则集“基本”的以下规则已标记为已弃用,现在已从此版本中删除: EmptyCatchBlock,EmptyIfStatement,EmptyWhileStmt,EmptyTryBlock,EmptyFinallyBlock,EmptySwitchStatements,EmptySynchronizedBlock,EmptyStatementNotInLoop,EmptyInitializer,EmptyStatementBlock,EmptyStaticInitializer UnnecessaryConversionTemporary,UnnecessaryReturn,UnnecessaryFinalModifier,UselessOverridingMethod,UselessOperationOnImmutable,UnusedNullCheckInEquals,UselessParentheses这些规则仍然在规则集可用 “空”(规则集/ JAVA / empty.xml)和“Unnecessary”(rulesets / java / unwanted.xml)。
删除以“空”fom PMD配置开头的所有规则后,我可以导入它。