已經有許多questions about creating new rules,並創建規則集。這些也是官方文件涵蓋的(或者我應該說的)主題。
但是如果我想改編現有的規則呢?例如。我想修改「靜態最終成員應該全部大寫」的規則來忽略記錄器。我知道這個決定是controversial,但我們已經達成了團隊的共識
我是否必須下載並調整源代碼發佈?我希望有更好的辦法。
更好的方法還可能涉及使用不同的代碼審查框架與易餡餅自定義,雖然我不希望在中游改變馬匹。如何修改現有的PMD規則
回答
到目前爲止,您無疑已經離開了這個道路,但爲未來看到這個問題的人提供了答案。
您可以通過創建自己的Java規則來擴展Java規則,該規則將PMD中的內置子類化。然後創建自己的規則集XML,該XML指向您的Java規則。
不幸的是,VariableNamingConventions規則在沒有擴展點的私有方法中具有所有邏輯。你可能會更好地創建自己的包裝他們的規則。這樣你可以檢查你的特殊情況,然後委託給其餘的現有規則。
您可以使用XPath在規則集文件中創建規則的副本。 XPath的聲明性質也需要使用一些,但它可以縮短複雜規則的工作量。
http://techtraits.com/programming/2011/11/01/writting-pretty-code-with-pmd.html
博客條目似乎解釋瞭如何使用XPath添加新的PMD規則和規則集,而我的意圖是修改現有規則以按名稱排除某些變量。這是一個誤解嗎? – kostja 2011-11-22 18:28:03
在Eclipse中去 Windows -> Prefernces -> PMD -> Rule Configration
檢查"Use Global..."
滾動並找到VariableNamingConvention, w/ ruleset Naming
點擊"Rule Designer"
按鈕
單擊排除選項卡
添加VariableDeclaratorId[@Image='logger']
與XPath表達式排除
單擊確定,然後重新運行PMD校驗碼
變化logger
長期上面無論您的變量名。
- 1. 使用PMD規則
- 2. PMD與Maven - 如何禁用規則集中的一個規則?
- 3. 導入PMD的規則Eclipse
- 4. 如何在規則集中創建PMD自定義規則?
- 5. 如何修改StanfordNLP中的TokenRegex規則?
- 6. 如何修改perritritic中的規則
- 7. PMD規則DataflowAnomalyAnalysis奇怪
- 8. PMD規則集文件
- 9. 在不修改現有規則的情況下計算已解除規則
- 10. Sonar中的修改規則
- 11. WordPress |修改重寫規則
- 12. 修改.htaccess重寫規則
- 13. 定製PMD規則不被PMD的Eclipse插件
- 14. 排除build.gradle文件中的PMD規則
- 15. 修改現有的正則表達式
- 16. 如何在使用PMD的短變量規則中忽略「id」
- 17. 如何找到pmd規則集的xml名稱
- 18. 如何爲Gradle中的不同配置配置PMD規則集?
- 19. 如何識別PMD規則中的換行符
- 20. 螞蟻PMD和規則排除
- 21. 解決PMD規則集本地
- 22. 需要了解一個PMD規則
- 23. PMD規則在java中查找註釋
- 24. 使用Gradle自定義PMD規則
- 25. SQL - 如何更改現有視圖上的排序規則
- 26. PMD - 違規:SuspiciousEqualsMethodName
- 27. PMD問題有待修復
- 28. 修改CSS規則的對象用JavaScript
- 29. 的.htaccess修改重寫規則,但保留所有其他規則不變
- 30. 如何爲PMD Xpath規則設置嵌套條件
謝謝,珍妮。我最終擴展了VariableNamingConventions幷包裝了ASTFieldDeclaration的訪問方法。儘管如此,擴展AbstractJavaRule可能會更好。 – kostja 2011-02-28 08:31:05