Плагин Maven для принудительного изменения размера файла Java

#java #maven

#java #maven

Вопрос:

Я ищу плагин, который позволит мне во время сборки обеспечить, чтобы мои файлы Java не превышали определенного размера. Например, если решено, что 500 строк — это слишком много строк для класса, то сборка завершится неудачно, если какие-либо классы превысят 500 строк.

Для чего-то подобного я думаю о jacoco, где вы можете настраивать различные параметры, но, конечно, вместо анализа покрытия тестового кода он анализирует фактическое количество строк в каждом классе.

Существует ли такой плагин?

Ответ №1:

Инструменты статического анализа кода (SCA) проверяют подобные вещи, но я не знаю плагина Maven, который завершает сборку с ошибкой, если такой предел превышен. Инструменты, которые я знаю, просто создают отчеты, чтобы информировать вас о таких обстоятельствах.

Даже если бы он существовал, я бы не стал использовать такой плагин. Слишком длинные классы — это вопрос рефакторинга, а не вопрос выпуска или неработоспособности кода.

Комментарии:

1. Да, по сути, какой-то SCA с реализацией плагина Maven — это именно то, что я ищу. К сожалению, мы не знаем об этом. Однако я бы не согласился. Хотя я, вероятно, не стал бы включать такой плагин в устаревший проект, я думаю, что он подойдет прямо дома для совершенно нового проекта. Существует несколько плагинов, которые прерывают сборку для гораздо менее раздражающих вещей, таких как стиль кода и сортировка пом.

2. @AustinBrown Какие плагины прерывают сборки из-за стиля кода или сортировки POM? (Хотя последнее может произойти со специальными конфигурациями, но в основном POM носят декларативный характер, и, следовательно, сортировка не должна иметь значения.)

3. сортировка пом: github.com/Ekryd/sortpom/tree/master/maven-plugin стиль кода: github.com/coveooss/fmt-maven-plugin

4. @AustinBrown sortpom-maven-plugin У verify цели есть параметр verifyFail=stop . Я не понимаю, как fmt-maven-plugin намеренно завершается сбой сборки.

5. Хм. Возможно, у нас возникли семантические недоразумения? Все, что я знаю, это то, что с помощью плагина, когда я пытаюсь запустить mvn clean verify , сборка завершается неудачно.