Как мне настроить использование результатов pmd и checkstyle только в качестве рекомендаций и отключить их на сервере сборки? И будет ли это плохой практикой?
И pmd, и checkstyle предлагают ценные советы, и я хочу продолжать их использовать.
Но (вот оно, но) я обнаружил, что мой код собирает много ворса, пытаясь обойти некоторые предупреждения. Назову несколько примеров:
Тестовые классы содержат много статических импортированных mockito и junit, мне всегда приходится добавлять @SuppressWarnings ("PMD.TooManyStaticImports").
Поля тестируемого класса должны быть заполнены фиктивными объектами, они нигде в тесте не используются, но должны быть объявлены и аннотированы с помощью @Mock для правильной работы тестируемого класса. Добавьте @SuppressWarnings ("PMD.UnusedPrivateField").
В тестовых классах у меня будут методы для создания объектов из длинного списка параметров, например: createPerson (String firstname, String lastname, int shoesize, String favouritecolor, ...). Эти объекты обычно создаются из базы данных или XML. Добавьте @SuppressWarnings ("PMD.ParameterNumberCheck").
Иногда моя документация будет такой: «Этот метод гарантирует, что X в следующих 3 случаях: \ n ...». Очевидно, это недопустимо, так как первое предложение должно заканчиваться точкой.
Родительский класс X имеет некоторое поле y, которое необходимо и используется всеми его дочерними элементами, но стиль проверки не позволит это, если это поле не доступ через метод (getY ()). Это просто неестественно, ИМО.
Один из вариантов - навсегда отключить проверки, вызывающие наибольшие неудобства, однако проверка может быть неприятной или очень полезной в зависимости от контекста. Я понимаю, что явное подавление предупреждений в коде также является способом документировать, что только в конкретном контексте проверка не имеет отношения к делу и раздражает. Меня раздражает количество подавлений, почти каждый тестовый класс нуждается в подавлении, а некоторые другие классы нуждаются в обходных путях.
Так будет ли это решение для генерации предупреждений, но не позволяющее нарушениям checkstyle и pmd сбой сборки?