已經有許多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與Maven - 如何禁用規則集中的一個規則?
- 2. 如何在規則集中創建PMD自定義規則?
- 3. PMD規則集文件
- 4. PMD規則DataflowAnomalyAnalysis奇怪
- 5. 在不修改現有規則的情況下計算已解除規則
- 6. Sonar中的修改規則
- 7. WordPress |修改重寫規則
- 8. 修改.htaccess重寫規則
- 9. 解決PMD規則集本地
- 10. 螞蟻PMD和規則排除
- 11. 使用Gradle自定義PMD規則
- 12. 需要了解一個PMD規則
- 13. 如何爲Gradle中的不同配置配置PMD規則集?
- 14. SQL - 如何更改現有視圖上的排序規則
- 15. 如何在sonarQube中導入pmd規則集4.3.1
- 16. 如何在SonarQube 5.5中使用自定義PMD規則?
- 17. 如何在Gradle中找到PMD規則集名稱> 2.0
- 18. 如何使用eclipse-pmd規則集配置
- 19. 如何使用Maven爲PMD創建自定義規則?
- 20. 如何在pmd中爲java評論創建規則?
- 21. 如何修改現有的SharePoint網站?
- 22. 如何修改現有的Firefox擴展?
- 23. 如何修改電話號碼的HAPI驗證規則?
- 24. 在eclipse pmd插件中添加新的基於java的PMD規則
- 25. laravel - 基於droplist修改驗證規則
- 26. 修改一個重寫規則
- 27. 如何避免PMD CloseResource違規?
- 28. 使用PMD的自定義規則 - 在運行時將值傳遞給規則
- 29. 將使用PMD編寫的規則轉換爲聲納自定義規則
- 30. 如何通過正則表達式從pmd規則中排除類
謝謝,珍妮。我最終擴展了VariableNamingConventions幷包裝了ASTFieldDeclaration的訪問方法。儘管如此,擴展AbstractJavaRule可能會更好。 – kostja 2011-02-28 08:31:05