Как заметил @Victor Сонар - очень хороший инструмент для статического анализа кода. Он создает графики, диаграммы и, как правило, позволяет разбивать и разбивать анализ Java-кода несколькими способами.
Тем не менее, он работает как сервер, который может требовать привилегий на вашей машине / сети, которых у вас может не быть. Я использую это сам, и я рекомендую это, но это не всегда практично. Итак, давайте посмотрим на некоторые из инструментов, которые он использует под капотом.
Во-первых, есть FindBugs . Как следует из названия, это помогает вам находить ошибки в исходном коде Java.
Далее, есть PMD . Он помогает находить ошибки различными способами из FindBugs.
В-третьих, есть CheckStyle . Это помогает обеспечить соответствие вашего кода определенным правилам стиля.
Наконец, есть Cobertura , который обрабатывает ваши байт-коды Java и анализирует, какие строки исходного кода выполняются вашими юнит-тестами (у вас есть юнит-тесты, верно?)
Это не исчерпывающий список инструментов, которые использует Sonar, но он охватывает то, что, кажется, основные моменты. Внутри сонара все они настраиваются на 100%. За пределами Sonar они все еще настраиваемы, но вам больше нравится XML.