PMD xpath, um AtLeastOneConstructor und UnusedPrivateField zu unterdrücken?

Ich habe diesen Code und PMD meldet zwei Regelverstöße:

AbstractExceptionHandler hat keinen Konstruktor (AtLeastOneConstructor)

Und das Feld uriInfo ist ein nicht verwendetes privates Feld (UnusedPrivateField)

@NoArgsConstructor
public class AbstractExceptionHandler {  // PMD AtLeastOneConstructor warning here 

   /** the uriInfo injection. */
   @Getter
   @Context
   private UriInfo uriInfo; // PMD UnusedPrivateField warning here

beide Warnungen sind in Ordnung, aber wir verwenden Anmerkungen, um Code zu generieren. Die Warnung ist also für uns nutzlos.

Wir haben folgende Unterdrückungen erstellt:

AtLeastOneConstructor

<rule ref="rulesets/java/controversial.xml/AtLeastOneConstructor">
    <properties>
        <property name="violationSuppressXPath"
            value="//ClassOrInterfaceDeclaration[//ImportDeclaration//Name[@Image='lombok.NoArgsConstructor'] | //TypeDeclaration//MarkerAnnotation//Name[@Image='NoArgsConstructor']]" />
    </properties>
</rule>

UnusedPrivateField

<rule ref="rulesets/java/unusedcode.xml/UnusedPrivateField">
    <properties>
        <property name="violationSuppressXPath"
            value="//ClassOrInterfaceBodyDeclaration//FieldDeclaration[//TypeDeclaration//MarkerAnnotation//Name[@Image='Getter'] | //TypeDeclaration//MarkerAnnotation//Name[@Image='Setter']]"/>
    </properties>
</rule>

Und der PMD xpath Designer teilt uns mit, dass es sich um die genau verwendeten Zeilen mit der Verletzung handelt, PMD meldet jedoch weiterhin einen Fehler. Kann mir jemand aus der Dunkelheit helfen?

Antworten auf die Frage(0)

Ihre Antwort auf die Frage