[英]how to exclude classes from pmd rule by regexp
有沒有辦法按類名模式從PMD規則中排除類?
我在尋找......
<rule ref="rulesets/java/coupling.xml/ExcessiveImports">
<exclude-pattern>.*Test\.class</exclude-pattern>
</rule>
我知道vioSuppressXPath方法,但我發現它太丑陋/復雜。
謝謝!
我擔心沒有。 您當前可以使用<exclude-pattern>
完全忽略分析中的文件,但不能忽略特定規則。
這背后的基本原理是,在代碼庫上強制執行規則集時,應盡量保持一致。 在這樣做時,幾乎沒有例外:
您的示例似乎指向了第一個場景的方向。 如果您想為測試類提供更輕松的規則集,則應創建單獨的配置並讓PMD運行兩個單獨的分析。
然而,這不屬於PMD本身的范圍,而是關於如何運行它。 在Gradle / Ant / CLI上,這非常簡單。 不幸的是,在Maven上它目前不受支持(可以找到一個功能請求並在這里投票)
如果您認為有其他方案(前兩個方案未涵蓋),應考慮到這一點,請在https://github.com/pmd/pmd/issues上發布功能請求
如果類名以DTO
結尾,則該規則將忽略特定規則:
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.