Есть ли способ отключить правило Codenarc NoDef для действий контроллера Grails? Правило является хорошей практикой в целом, но поскольку некоторые действия возвращают значение, а некоторые - нет, мы обычно используем def для поддержки всех вариантов. Я немного оглянулся, чтобы посмотреть, можно ли отключить это правило для действий контроллера, но при этом пуст. Кто-нибудь знает?Grails: отключить правило Codenarc NoDef для действий контроллера
ответ
Если вы используете codenarc плагин, то я считаю, вы должны быть в состоянии отключить некоторые правила в наборе файлов правил codenarc как уже упоминалось в этом блоге
http://www.tothenew.com/blog/grails-clean-code-configure-codenarc-plugin/
Вы не можете настроить это правило Codenarc по имени файла. Проверьте @ j4y ответ. – mathifonseca
Я прочитал сообщение в блоге и попытался doNotApplyToClassNames, но это не сработало.
Из документации:
NoDef Правила
С CodeNarc 0,22
ПРИМЕЧАНИЕ: Это правило применяется к текстовому содержимому файла, а не определенного класса, поэтому он не поддерживайте свойства configureToClassNames и doNotApplyToClassNames.
Таким образом, вы не можете на самом деле использовать параметр doNotApplyToClassNames, но есть excludeRegex
свойство, которое можно использовать, но вам нужно будет придумать регулярное выражение, чтобы исключить ваши действия контроллера.
Регулярное выражение, описывающее имена атрибутов, параметров или методов, которым может предшествовать ключевое слово def.
Вы не может исключить конкретно действия контроллера, и вы не можете исключить по имени класса либо (используя свойство doNotApplyToClassNames
), так как правило, применяется файловом уровне, а не класс.
Ближайший я мог бы получить в том, чтобы исключить весь контроллер из следующего правила:
NoDef.doNotApplyToFilesMatching = /.*Controller.groovy/
Я также рекомендую исключить Services
и grailsApplication
инъекции из правила, поскольку это не мешает мне иметь DEFS там. Например:
class SomeService {
def otherService
def grailsApplication
}
Конфигурация правила для этого должно быть:
NoDef.excludeRegex = /(.+Service|.+Controller|grailsApplication)/
- 1. Grails codenarc «Ошибка сценарий не найден: Codenarc»
- 2. Плагин Grails codenarc для Grails 1.3.9
- 3. Grails codenarc сценарий не устанавливая
- 4. grails-CodeNarc и Service Stateless ruleSet
- 5. Методы действий контроллера Grails 2.0.1 перестали работать
- 6. CodeNarc - определить, является ли класс интеграционным тестом Grails
- 7. Grails, разные URL для одного контроллера и действий
- 8. Отключить ведение журнала для определенных действий контроллера в Rails 3.1
- 9. Как отключить механизм allowMethods для моего контроллера Grails
- 10. Как включить пользовательские правила в плагин grails codenarc
- 11. Список действий для конкретного контроллера
- 12. Создать страницу для действий контроллера
- 13. Отключить проверки для немедленных действий
- 14. Значения приоритета Codenarc
- 15. Фильтры Grails не вызываются для пользовательских действий
- 16. Grails UrlMappings для отдыха и других действий
- 17. Отключить правило в сонаре
- 18. Избегайте подобных действий контроллера
- 19. Чтение всех действий в контроллере Grails
- 20. Как гнездо Grails путей контроллера
- 21. Использование действий внутри контроллера?
- 22. Grails - Действия асинхронного контроллера
- 23. Параметрические имена действий в Grails urlMappings
- 24. Sonar runner датчик коленей игнорирует нарушение Codenarc
- 25. Отключить UIAppearance для контроллера вида
- 26. Grails: мобильная версия контроллера
- 27. Как отключить правило CSS для плагина wordpress
- 28. Grails методы контроллера
- 29. Grails, регистрирующийся от контроллера
- 30. Где методы контроллера для пользовательских действий rails_admin?
«мы обычно используем Защиту поддерживать все варианты» - Учтите что, если тип метода возвращение 'void', на HTTPS : //github.com/grails/grails-core/blob/bd7741b646e13da598926cf118fad0221590e567/grails-plugin-controllers/src/main/groovy/org/grails/compiler/web/ControllerActionTransformer.java#L303 он не будет настроен как контроллер действие. Я знаю, что это не то, о чем вы просите, но хотите указать на это, если это может оказаться полезным. –