PMD 定制化忽略某些类、方法或字段

PMD 定制化忽略某些类、方法或字段

某些情况下,希望单独忽略 PMD的校验,但是由于该场景下可能包含很多类、字段或者方法。

如果直接在压制告警的地方使用@SuppressWarnings,那写的太多。

如果在上级写,一是容易误伤,二是某些场景没有上级。

希望可以在一个统一的地方,进行定制化的配置。

pmd-rule.xml

在根目录下的pmd-rule.xml对规则进行配置。

下面示例中,希望忽略 Repository 类的方法,因为项目场景中不适合写 Javadoc

<rule ref="rulesets/java/ali-comment.xml/AbstractMethodOrInterfaceMethodMustUseJavadocRule">
  <properties>
    <!-- 根据正则匹配,不过由于是匹配当前元素。因此较为局限 -->
    <property name="violationSuppressRegex" value=".*'Repository'.*"/>
    <!-- 根据XPath语法匹配 -->
    <!-- 忽略所在类名称包含'Repository'的方法 -->
    <property name="violationSuppressXPath" value="./ancestor::ClassOrInterfaceDeclaration[contains(@Image, 'Repository')]"/>
    <!-- Repository 可以改成正则表达式,比如'^.*Repository$' 以 Repository 结尾的类名-->
  </properties>
</rule>

对于上述的ClassOrInterfaceDeclaration使用暂无头绪,应该是语法树的使用。

参考

PMD :https://pmd.github.io/latest/pmd_userdocs_suppressing_warnings.html#the-property-violationsuppressregex

XPath:https://www.w3school.com.cn/xpath/xpath_axes.asp

AST of PMD :https://pmd.github.io/latest/pmd_userdocs_extending_writing_xpath_rules.html#dom-representation-of-asts

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值