【发布时间】:2015-11-20 20:31:26
【问题描述】:
我正在使用 PMD 检查 Java 源文件。对于log 变量,PMD 显示该变量应为大写,因为它是static 和final。
我想从该规则中排除 log 变量。这可能吗?
private final static Logger log = LoggerFactory.getLogger(ApplianceImporter.class);
【问题讨论】:
我正在使用 PMD 检查 Java 源文件。对于log 变量,PMD 显示该变量应为大写,因为它是static 和final。
我想从该规则中排除 log 变量。这可能吗?
private final static Logger log = LoggerFactory.getLogger(ApplianceImporter.class);
【问题讨论】:
可以配置 PMD 规则以忽略某些 XPath:
<rule ref="rulesets/java/naming.xml/VariableNamingConventions">
<properties>
<property name="violationSuppressXPath" value="//VariableDeclaratorId[@Image='log']"/>
</properties>
</rule>
这从VariableNamingConventions 规则中完全排除了所有名为log 的字段,并且不需要//NOPMD 的代码污染。
【讨论】:
你必须添加 //NOPMD 和行尾
private final static Logger log = LoggerFactory.getLogger(ApplianceImporter.class); //NOPMD
这里有深入的解释
【讨论】: