Как изменить существующие правила PMD
Было много вопросов о создании новых правил и создании наборов правил. Это также темы, затронутые (или я должен упомянуть) официальной документацией.
Но что, если я хочу адаптировать существующее правило? Например, я хочу изменить правило "статические конечные члены должны быть заглавными", чтобы игнорировать регистратор. Я знаю, что это решение является спорным, но мы достигли общего консенсуса по этому вопросу.
Нужно ли загружать и настраивать исходный код? Я надеюсь, что есть лучший способ.
Более эффективный способ также может включать использование другой среды для анализа кода с простой настройкой, хотя я бы предпочел не менять лошадей в середине потока.
3 ответа
Вы, несомненно, уже отошли от этого, но даете ответ тем, кто увидит этот вопрос в будущем.
Вы можете расширить правило Java, создав собственное правило Java, которое подразделяет встроенное правило PMD. Затем вы создаете свой собственный набор правил XML, который указывает на ваше правило Java.
К сожалению, правило VariableNamingConventions имеет всю логику в частном методе без точек расширения. Возможно, вам лучше создать свое собственное правило, которое обернет их. Таким образом, вы можете проверить ваш особый случай, а затем делегировать существующее правило для остальных.
Вы можете использовать XPath для создания своей копии правила прямо в файле набора правил. Декларативная природа XPath тоже требует некоторого привыкания, но может усложнять сложные правила.
http://techtraits.com/programming/2011/11/01/writting-pretty-code-with-pmd.html
В Eclipse перейдите на Windows -> Prefernces -> PMD -> Rule Configration
Проверьте "Use Global..."
Прокрутите и найдите VariableNamingConvention, w/ ruleset Naming
Нажмите "Rule Designer"
кнопка
Нажмите вкладку Исключения
добавлять VariableDeclaratorId[@Image='logger']
в XPath выражение исключения
Нажмите OK, а затем повторно запустите PMD Check Code
+ Изменить logger
термин выше, чтобы ваше имя переменной.