抑制小写 'log' 字段的 PMD VariableNamingConventions 规则

Suppress PMD VariableNamingConventions rule for lowercase 'log' field

我正在使用 PMD 检查 Java 源文件。对于 log 变量,PMD 显示该变量应该是大写的,因为它是 staticfinal

我想从这条规则中排除 log 变量。这可能吗?

private final static Logger log = LoggerFactory.getLogger(ApplianceImporter.class);

您必须添加 //NOPMD 和行尾

private final static Logger log = LoggerFactory.getLogger(ApplianceImporter.class); //NOPMD

这里有深度讲解

http://pmd.sourceforge.net/pmd-4.3.0/suppressing.html

可以配置 PMD 规则以忽略某些 XPath:

  <rule ref="rulesets/java/naming.xml/VariableNamingConventions">
    <properties>
      <property name="violationSuppressXPath" value="//VariableDeclaratorId[@Image='log']"/>
    </properties>
  </rule>

这从 VariableNamingConventions 规则中完全排除了所有名为 log 的字段,并且不需要 //NOPMD 的代码污染。