私は以下のクラスを持っているを確認するスキップ未使用のメソッド( "unusedMethod"と "postConstructAnnotatedMethod")については、@PreDestroyと@PostConstructでアノテーションされたメソッドのルール "UnusedPrivateMethod"を無視したいと思います。PMDは@PostConstructでannotaded方法や@PreDestroy
<rule ref="rulesets/java/unusedcode.xml">
<exclude name="UnusedPrivateMethod"/>
</rule>
<rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod">
<properties>
<property name="violationSuppressXPath"
value="//ClassOrInterfaceBodyDeclaration/Annotation/MarkerAnnotation/Name[@Image='PostConstruct']"/>
</properties>
</rule>
をしかし、クラスは@PostConstructアノテーションを付けるメソッドのためだけではなく、私の注釈が含まれている中で、この場合、PMDは、すべてのメソッドのために、このルールを確認するためにスキップ:
は、私はこのような何かを行うことができます知っています。私は、チェックコードの後、私は "unusedMethod"にエラーがあり、PMDは "postConstructAnnotatedMethod"に関するエラーを通知しないことを期待しています。
私はこのような何かやりたい:希望のアノテーションを付けたメソッドだけではなく、すべてのメソッドをスキップする
<rule ref="rulesets/java/unusedcode.xml/UnusedPrivateMethod">
<properties>
<property name="violationSuppressXPath"
value="//MethodDeclaration/Annotation/Name[@Image='PostConstruct']"/>
</properties>
</rule>
を。
また、コードを多くの@SuppressWarnings("PMD.UnusedPrivateMethod")
アノテーションで汚染したくありません。
おかげで、それは私の問題を解決していません。このノードを私のruleset.xmlに追加した後も、まだ未使用のメソッドに関する2つのメッセージが残っています。 unusedMethodおよびpostConstructAnnotatedMethodの場合 –
私は飛行中にxpathを書いていました。私はちょうどそれを更新した、それは今働く必要があります。 – Johnco
PMDは、どのメソッドでも@PostConstructアノテーションを持つクラス全体でこのルールを無効にします。注釈付きのメソッドに対してのみこのルールを無効にしたい私は私の質問でそれを記述する。 –