Java 如何在PMD CommentRequired规则中忽略getter/setter?
我想使用PMDs规则,但不想将其应用于JavaBean的getter/setter 基于此,我尝试了以下配置:Java 如何在PMD CommentRequired规则中忽略getter/setter?,java,xpath,pmd,Java,Xpath,Pmd,我想使用PMDs规则,但不想将其应用于JavaBean的getter/setter 基于此,我尝试了以下配置: <rule ref="rulesets/java/comments.xml/CommentRequired"> <properties> <property name="violationSuppressXPath" value="./ancestor::MethodDeclaration/MethodDeclarator/Node
<rule ref="rulesets/java/comments.xml/CommentRequired">
<properties>
<property name="violationSuppressXPath" value="./ancestor::MethodDeclaration/MethodDeclarator/NodeToken[@tokenImage='(get|is|set).*']"/>
<property name="fieldCommentRequirement" value="Ignored"/>
</properties>
</rule>
但是PMD仍然报告我的代码中的一些getter需要注释
抑制getter/setter规则的正确XPath表达式是什么?PMD XPath表达式基于哪个架构?阅读并使用PMD设计器后,以下内容对我适用:
<rule ref="rulesets/java/comments.xml/CommentRequired">
<properties>
<property name="violationSuppressXPath" value="//ClassOrInterfaceBodyDeclaration/MethodDeclaration/MethodDeclarator[matches(@Image,'(get|is|set)[\p{Lu}].*') and not(FormalParameters/FormalParameter)]"/>
<property name="fieldCommentRequirement" value="Ignored"/>
</properties>
</rule>
为了更好地理解PMD正在使用的AST,可以查看一下它的javadoc:我尝试在xpath表达式上方添加xpath,但这也忽略了
foo()
方法的静态分析,因为它们要么是setBoo()
要么是getBob()
方法。然而,它应该只对setter和getter进行静默扫描!