Тенденции качества кода Java и статистика (LOC, методы и т. д.)

Недавно я интегрировал Junit и Emma в CruiseControl (CC), поэтому он создает хорошие отчеты для каждой сборки. Я хотел бы увидеть несколько графиков тенденций, основанных на некоторой информации, которую дает Эмма, например, числа% охвата и сводка:

OVERALL STATS SUMMARY  
total packages: 54  
total executable files: 1001  
total classes:  1133  
total methods:  11814  
total executable lines: 112428  

В идеале у нас могла бы быть одна страница с графиками (диаграммами Google?), которые обновляются при каждой сборке. Я немного погуглил, и похоже, что есть плагин jenkins, который мог бы это сделать, но я не видел ничего подобного для CC. Я также планирую настроить и запустить Sonar в CC, так что, может быть, Sonar сделает это?

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

Ах, только что нашел этот «Другой подход - использовать плагин Sonar для Hudson для поддержания тенденций покрытия с течением времени» в Может ли моя сборка предусмотреть, что покрытие моего кода никогда не ухудшится? Я мог бы установить Hudson и использовать его вместо CC, но предпочел бы не делать этого, т должен.

Итак, мой вопрос - какой самый простой способ получить трендовое покрытие/статистику по моему Java-коду (надеюсь, в CruiseControl)?


person Brian Pipa    schedule 02.10.2012    source источник
comment
Не желая начинать религиозную войну, я рекомендую попробовать Хадсона/Дженкинса. Их до смешного легко начать, и если у вас нет сильно настроенной сборки CruiseControl, вам, вероятно, потребуется не более 30 минут для настройки.   -  person artbristol    schedule 02.10.2012
comment
Да, я использовал Хадсона/Дженкинса на своей последней работе. Я не устанавливал его, но использовал (и мне понравилось). Я работаю на этой работе всего несколько месяцев и не хочу (пока) убеждать их установить H/J только для того, чтобы попасть в тренды (это была моя идея, а не руководство). Если нет (относительно простого) решения, чтобы получить это в CC, я могу посмотреть на H/J в будущем.   -  person Brian Pipa    schedule 02.10.2012
comment
Мне очень нравится Sonar именно из-за его способности отображать графики трендов. Если ваша сборка основана на Maven, вы можете вызвать цель плагина Sonar в Cruise Control. Я понимаю, почему вы не хотите расстраивать яблочную тележку с непрерывной интеграцией, но я думаю, что ваша жизнь станет проще, если вы стиснете зубы и перейдете на Хадсона или Дженкинса.   -  person bcholmes    schedule 02.10.2012
comment
Наша сборка не основана на Maven. Но... Я только что установил Jenkins локально, и менее чем за 10 минут он собрал наш код, запустил junit и создал нашу войну. Дженкинс выглядит все лучше и лучше. Кроме того, он может легко выполнять за нас множество других задач типа cron. У меня есть электронное письмо для отправки в PHB, чтобы узнать, смогу ли я перевести нас в Дженкинс :)   -  person Brian Pipa    schedule 02.10.2012


Ответы (1)


Использование плагина Sonar Hudson/Jenkins определенно не является обязательным для запуска анализа Sonar. Вы можете вызвать Sonar из любого инструмента (командная строка, инструмент CI, такой как CC, ... и т. д.).

Вам просто нужно предоставить Sonar некоторую информацию, которая может быть в POM, если вы используете Maven, в файле build.xml, если вы используете Ant, в файле «sonar-project.properties», если вы планируете используйте простой Sonar Runner или просто передавайте свойства, если вы будете использовать Jenkins/Hudson.

Ознакомьтесь с нашей документацией о различных способах вызова Sonar, чтобы узнать больше обо всем этом. .

person Fabrice - SonarSource Team    schedule 03.10.2012
comment
Ах, значит, Sonar может отслеживать тренды независимо от того, откуда он запущен? Я знаю, что могу запустить Sonar, я просто не знал, что он делает тренды автоматически. Это правда? - person Brian Pipa; 03.10.2012
comment
Да, точно! :-) Все централизовано в базе данных, и вы просматриваете результаты из веб-приложения. - person Fabrice - SonarSource Team; 03.10.2012