Интеграция инструментов статического анализа друг с другом? - PullRequest
1 голос
/ 17 сентября 2008

Как люди интегрируют различные инструменты статического анализа, такие как PMD, Checkstyle и FindBugs, чтобы они использовались вместе единообразным образом? В частности, я заинтересован в создании единого унифицированного отчета, который включает предупреждения от всех инструментов. Кроме того, я хочу иметь возможность разметить свой код с помощью достаточно последовательных подавлений предупреждений.

Мой вопрос здесь не предназначен для решения проблемы "перекрытия" инструментов, когда, скажем, PMD и Checkstyle ищут одни и те же вещи. Это еще одна проблема.

Пожалуйста, см. Некоторые из моих мыслей по этому вопросу в ответе на связанный вопрос .

Ответы [ 5 ]

2 голосов
/ 16 октября 2008

Еще один вариант - подбирать. http://jbrugge.com/glean/

С их веб-сайта: Glean - это фреймворк Ant-скриптов для генерации обратной связи по исходному коду команды. Цель Glean - сделать так, чтобы добавление обратной связи к вашему циклу сборки было как можно меньше боли. Сценарии управляют несколькими инструментами с открытым исходным кодом и собирают полученный HTML-код для развертывания на веб-сайте проекта или в другой общей рабочей области. Добавьте его в конце ежедневного цикла сборки, и это быстрый способ поддерживать актуальность ряда источников обратной связи и в одном месте.

2 голосов
/ 15 октября 2008

Я наткнулся на JcReport сегодня, что, я думаю, делает именно то, что вы ищете. По крайней мере, он обрабатывает отчеты комбинированным способом; подавления по-прежнему зависят от инструмента. Этот инструмент поддерживает автоматическую интеграцию вывода PMD, CPD, FindBugs, CheckStyle и Cobertura в один отчет HTML.

Я еще не пробовал, но определенно собираюсь в ближайшее время.

1 голос
/ 17 сентября 2008

Мне неясно, что в вашей книге рассматривается как единое унифицированное сообщение, но вот что я делаю.

Я использую Maven2 для сборок, и с его помощью вы можете настроить ряд плагинов для отчетов (включая PMD, CPD, checkstyle, coberturba и т. Д.). Maven также автоматически сгенерирует веб-сайт (плагин сайта) для вашего проекта, который содержит все отчеты в удобном и удобном для навигации формате веб-страницы.

0 голосов
/ 17 сентября 2008

Спасибо за ответы!

Цель здесь - настроить эти инструменты таким образом, чтобы они вели себя одинаково по отношению друг к другу. Это выходит за рамки простого вывода любого автоматически создаваемого отчета или использования любого подсказки для подавления предупреждений, которую они используют «из коробки».

Например, у меня есть PMD, Checkstyle и FindBugs, настроенные для отчета обо всех предупреждениях в следующем формате:

/absolute-path/filename:line-number:column-number: warning(tool-name): message

Таким образом, предупреждение может выглядеть так:

/project/src/com/example/Foo.java:425:9: warning(Checkstyle): Missing a Javadoc comment.

Кроме того, все подавления предупреждений в моем исходном коде отмечены символом, который включает строку "SuppressWarnings", независимо от того, какой инструмент статического анализа был отключен. Иногда этот символ является аннотацией, иногда он находится в комментарии, но у него всегда есть это имя.

Я объясню эти идеи более подробно здесь .

0 голосов
/ 17 сентября 2008

Если вы строите свой проект с помощью Maven, и эти инструменты «подключены» к вашей сборке Maven, то отчет Maven, созданный для сборки, будет содержать выходные данные этих инструментов статического анализа.

...