如何告诉 PMD 忽略未使用代码的 @PostConstruct 方法
How to tell PMD to ignore @PostConstruct Methods for unused Code
我们有一个项目被 PMD 检查是否违反了例如未使用的私有方法。我们的问题是我们不知道是否可以忽略用 @PostConstruct
.
注释的私有方法
规则定义如下:
<rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod"/>
编辑:
我的目标是定义一次以忽略带注释的方法。我想防止在每个方法上写 @SupressWarnings
。
在 HairyFotr 的提示和建议下,我能够配置我的规则集以忽略 private
方法和 @PostConstruct
。
我必须使用的规则是:
<rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod">
<properties>
<property name="violationSuppressXPath"
value="//ClassOrInterfaceBodyDeclaration/Annotation/MarkerAnnotation/Name[@Image='PostConstruct']" />
</properties>
</rule>
只要存在至少一个 @PostConstruct 注释, 就会抑制文件中所有 UnusedPrivateMethod 违规行为。如果您只想抑制来自带有@PostConstruct 注释的方法的违规并保留来自没有注释的方法的违规,那么您必须在 XPath 前面加上 ancestor::
而不是 //
。
注意:以下示例使用PMD 6.0.0的新规则参考。
<rule ref="category/java/bestpractices.xml/UnusedPrivateMethod">
<properties>
<property name="violationSuppressXPath"
value="ancestor::ClassOrInterfaceBodyDeclaration/Annotation/MarkerAnnotation/Name[@Image='PostConstruct']" />
</properties>
</rule>
我们有一个项目被 PMD 检查是否违反了例如未使用的私有方法。我们的问题是我们不知道是否可以忽略用 @PostConstruct
.
规则定义如下:
<rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod"/>
编辑:
我的目标是定义一次以忽略带注释的方法。我想防止在每个方法上写 @SupressWarnings
。
在 HairyFotr 的提示和建议下,我能够配置我的规则集以忽略 private
方法和 @PostConstruct
。
我必须使用的规则是:
<rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod">
<properties>
<property name="violationSuppressXPath"
value="//ClassOrInterfaceBodyDeclaration/Annotation/MarkerAnnotation/Name[@Image='PostConstruct']" />
</properties>
</rule>
ancestor::
而不是 //
。
注意:以下示例使用PMD 6.0.0的新规则参考。
<rule ref="category/java/bestpractices.xml/UnusedPrivateMethod">
<properties>
<property name="violationSuppressXPath"
value="ancestor::ClassOrInterfaceBodyDeclaration/Annotation/MarkerAnnotation/Name[@Image='PostConstruct']" />
</properties>
</rule>