<rule ref="category/java/bestpractices.xml/UnusedPrivateField">
<properties>
<!--Ignore UnusedPrivateField on classes where the class name ends with DTO-->
<property name="violationSuppressXPath" value="//ClassOrInterfaceDeclaration['.*DTO']"/>
</properties>
</rule>
2 回答
我担心没有 . 您当前可以使用
<exclude-pattern>
完全忽略分析中的文件,但不能用于特定规则 .这背后的基本原理是,在代码库上强制执行规则集时,应尽量保持一致 . 在这样做时,几乎没有例外:
具有单独的测试/主要代码规则集
允许压制规则可能不适用于非常具体但有效理由的个别情况
您的示例似乎指向了第一个场景的方向 . 如果您想为测试类提供更轻松的规则集,则应创建单独的配置并让PMD运行两个单独的分析 .
然而,这不属于PMD本身的范围,而是关于如何运行它 . 在Gradle / Ant / CLI上,这非常简单 . 不幸的是,Maven目前不支持(可以找到功能请求并投票here)
如果您认为有其他方案(前两个方案未涵盖),应考虑到这一点,请在https://github.com/pmd/pmd/issues上发布功能请求
如果类名以
DTO
结尾,则's a rule that'将忽略特定规则:参考https://github.com/pmd/pmd/issues/1142 .