Есть ли плагин maven-git-checkstyle, который запускает цель checkstyle только для файлов git? - PullRequest
0 голосов
/ 25 апреля 2018

Мы работаем над унаследованной кодовой базой приложений и проводим поэтапную разработку, чтобы улучшить качество кода.Когда мы запустили цель проекта Maven Checkstyle, мы получили множество ошибок.Для постепенного решения проблем мы применяем подход к запуску checkstyle только для тех файлов, которые редактирует каждый разработчик, и перед их фиксацией.Опции, с которыми я столкнулся при поиске решения, - это ловушки перед фиксацией, которые перед выполнением кода выполняют цель maven.Рекомендации:https://git -scm.com / книга / а / v2 / Customizing-Гит-Гит-Крючки https://hdpe.me/post/maven-checkstyle-pre-commit-hook/

Недостаток вышеуказанного подхода заключается в том, что его нельзя применять на каждом компьютере разработчика.Так как хуки не загружаются в хранилище.У нас есть свои собственные ограничения (командная политика) в реализации серверных хуков.

Плагин IntelliJ checkstyle обладает именно той функциональностью, которую я ищу (Check All Modified Files).Check All Modified Files

Но не все разработчики в нашей команде используют IntelliJ, и он не может быть применен во время процесса сборки.

Я думаю, что я пытаюсь спросить:, есть ли способ вызвать ловушку перед фиксацией (логику) как цель maven?

1 Ответ

0 голосов
/ 25 апреля 2018

Существует ли плагин maven-git-checkstyle, который запускает цель checkstyle только для файлов git?

Мне не известен ни один плагин, который бы делал это, но у вас есть 2 варианта, которые я могу придумать для достижения этой цели.

1) Checkstyle может быть расширен, так что вы можете реализовать свой собственный фильтр . Фильтры - это то, что позволяет игнорировать и скрывать определенные нарушения вместо отключения всей проверки. Интегрируйте JGit в свой Фильтр, и вы сможете получить доступ к списку поэтапных файлов и любых коммитов для репозитория. Просто установите фильтр для подавления всех нарушений для любых файлов, которые не отображаются в списке промежуточных файлов. Вы можете настроить фильтр в соответствии с вашими потребностями.

2) Создайте список файлов, которые вы хотите подавить, используя SuppressionFilter и сохраните их в уникальный устаревший файл подавления. Вы можете настроить список для требуемого типа подавления (например, только по файлу, по файлу и имени чека и т. Д.). По мере того, как ваши разработчики работают над проектом, удалите определенные ограничения для файлов, которые они изменяют. Вы можете применить это к UT, если вы снова интегрируете JGit и убедитесь, что ни один из измененных файлов не указан в устаревшем файле подавления.

В любом случае вы выберете маршрут, как только вы закончите обновление всех устаревших файлов, я рекомендую удалить эти устаревшие подавления и всегда работать с полным рабочим пространством.

...