Sonar будет запускать CheckStyle, FindBugs и PMD, а также несколько других «плагинов», таких как Cobertura (покрытие кода) по умолчанию для проектов Java. Однако главная добавленная стоимость заключается в том, что он хранит историю в базе данных. Затем вы можете увидеть тенденцию . Вы улучшаете кодовую базу или делаете наоборот? Это может сказать только инструмент с памятью.
Вы должны запустить Sonar в своей системе CI, чтобы могли работать даже те вещи, выполнение которых требует некоторого времени (например, CPD - детектор копирования и вставки). И у вас будет своя история. В то время как с плагином Eclipse, например, вы обнаружите нарушения раньше - и это здорово - но у вас возникнет соблазн запускать его реже, если он начинает занимать слишком много времени или запускать менее качественные плагины (например, пропуск CPD или пропуск анализа покрытия кода). И у тебя не будет истории.
Также Sonar генерирует визуальные отчеты в стиле «приборной панели». Что делает его очень простым для понимания. С помощью Sonar в Jenkins вы сможете показать разработчикам и своему руководству влияние проделанной работы на качество кода за последние несколько недель и месяцев.
Sonar использует эти 3 инструмента в качестве подключаемых модулей и объединяет данные всех трех, обеспечивая дополнительную ценность, показывая графики и тому подобное из этих инструментов. Таким образом, они дополняют сонар.
источник
Да и нет. В дополнение к другим ответам.
SonarQube в настоящее время отказывается от PMD, Checkstyle и Findbugs и использует собственную технологию для анализа кода Java (называемую SonarJava ). Они делают это, потому что не хотят тратить свое время на исправление, обновление (или ожидание этого) тех библиотек (например, для Java 8), которые, например, используют устаревшие библиотеки.
Они также получили новый набор плагинов для вашей личной IDE под названием SonarLint .
источник
Sonar - это замечательно, но если вы хотите использовать упомянутые инструменты отдельно и при этом иметь хорошие графики, вы можете использовать плагин Analysis Collector как часть вашей сборки Jenkins CI. Небольшое преимущество этого заключается в том, что вы можете проверить свою конфигурацию PMD / Findbugs / Checkstyle в SCM и интегрировать ее в свою сборку Maven, вместо того, чтобы полагаться на отдельный сервер Sonar.
источник
Сонар - это гораздо больше, чем просто эти инструменты. Самым большим преимуществом является графический интерфейс, который позволяет легко настраивать что угодно. Предлагаемая статистика очень подробна (строки кода и т. Д.). И он даже предлагает отличную поддержку тестового покрытия и т. Д. :)
Здесь вы можете хорошенько посмотреть: http://nemo.sonarsource.org/
источник
Я бы по-прежнему использовал эти инструменты в дополнение к сонару, потому что они могут привести к сбою сборки maven, когда кто-то нарушит правило. Куда как эхолот более ретроспективно.
источник
... несколько лет спустя: нет, это не так! SonarQube предполагает возможность охватить все правила собственным анализатором, но все еще есть правила PMD или CheckStyle, не охватываемые SonarQube. См., Например: PMD ReturnFromFinallyBlock.
источник
Ну, по крайней мере, начиная с SonarQube 6.3+, похоже, что Findbugs (на данный момент) больше не поддерживается как плагин. Sonarsource работает над заменой правил Findbugs собственным Java-плагином.
У них даже есть список статуса замены каждого правила здесь: http://dist.sonarsource.com/reports/coverage/findbugs.html
источник