Java 如何在PMD CommentRequired规则中忽略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

我想使用PMDs规则,但不想将其应用于JavaBean的getter/setter

基于此,我尝试了以下配置:

<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进行静默扫描!