Простота написания пользовательских правил в (Java) инструментах статического анализа кода - PullRequest
6 голосов
/ 15 апреля 2011

В настоящее время я работаю в группе, в которой исходный код (Java) для нескольких проектов должен анализироваться с помощью инструментов анализа статического кода

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

Особенно с учетом того, что я должен иметь возможность легко писать / добавлять своисобственные пользовательские правила , которые можно использовать вместе с существующим списком правил инструмента.

Может ли кто-нибудь предложить, какой инструмент (или комбинацию инструментов) из приведенного ниже списка следует использовать?

  1. PMD
  2. Checkstyle
  3. Findbugs

Отредактировано: Спасибо Ира за указание.Я ищу инструменты статического анализа кода, которые будут использоваться вместе с Sonar.Надеюсь, теперь вопрос ясен.

Ответы [ 3 ]

2 голосов
/ 23 ноября 2011

Вот несколько уроков по настройке пользовательских правил для PMD, в дополнение к сонару я использую PMD, интегрированный с Maven.

http://www.techtraits.com/Programming/2011/10/31/writting-pretty-code-with-pmd/

http://www.techtraits.com/Programming/2011/11/05/custom-pmd-rules-using-xpath/

http://blog.code -cop.org / 2010/05 / заказ PMD-rules.html

1 голос
/ 14 августа 2013

Я использую FindBugs и PMD, интегрированные с Sonar. Я не рекомендую использовать CheckStyke, поскольку ввел стиль форматирования, который не нравится всем разработчикам.

FundBugs очень полон и помог мне найти много ошибок. Я предлагаю интегрировать FindBugs с инструментом непрерывной интеграции, таким как hudson (http://www.eclipse.org/hudson/).

Hudson поддерживает FindBugs, CheckStyle и PMD.

0 голосов
/ 27 октября 2012

Я использовал все эти инструменты в течение многих лет, и я бы порекомендовал их все!

Checkstyle, Findbugs и PMD очень хорошо интегрируются с сонаром, все три позволяют создавать пользовательские проверки, и все три позволяют использовать эти пользовательские проверки в сонаре.

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

У каждого из инструментов есть некоторые проверки, которых нет у других. Особенно в Findbugs есть довольно сложные проверки, которые несколько раз меня удивили. Комбинируя преимущества всех трех инструментов сонара, вы можете создать мощную систему статического анализа кода, которая действительно поможет вашей команде разработчиков.

...