Checkstyle и Findbugs для измененных файлов только в Jenkins (и / или Hudson) - PullRequest
5 голосов
/ 30 августа 2011

Мы работаем с большим количеством устаревшего кода и думаем о внедрении некоторых метрик для нового кода.Возможно ли запускать Findbugs и Checkstyle только для измененных файлов вместо полного проекта?

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

Ответы [ 2 ]

3 голосов
/ 30 августа 2011

Теоретически это было бы возможно.Вы будете использовать сценарий оболочки для анализа журналов изменений SVN (или любого другого SCM) после определенной даты начала, определения файлов .java из этих наборов изменений и построения двух шаблонов из них:

  • The Плагин Findbugs Maven ожидает разделенный запятыми список имен классов (или пакетов) для параметра onlyAnalyze, поэтому вам придется преобразовывать имена файлов в полные имена классов (этобудет сложно, когда вы имеете дело с внутренними классами)
  • Плагин Maven Checkstyle еще хуже, он ожидает файл конфигурации для своего параметра packageNamesLocation.К сожалению, разрешены только пакеты, а не отдельные файлы.Поэтому вам придется переводить имена файлов в пакеты.

В приведенных выше примерах я предполагаю, что вы используете maven.Я почти уверен, что подобные вещи можно сделать с помощью ant, но я бы не знал.

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

2 голосов
/ 11 сентября 2011

Findbugs имеет задачи ant, которые могут выполнять сравнения с различными результатами findbugs, чтобы видеть только дельты, поэтому только сообщая о новых ошибках, см.

http://findbugs.sourceforge.net/manual/datamining.html

...