Чем именно SonarQube отличается от SonarLint? SonarQube имеет связанный с ним сервер, и Sonar lint работает больше как плагин. Но в чем их конкретная разница?
Чем именно SonarQube отличается от SonarLint? SonarQube имеет связанный с ним сервер, и Sonar lint работает больше как плагин. Но в чем их конкретная разница?
Ответы:
SonarLint живет только в IDE (IntelliJ, Eclipse и Visual Studio). Его цель - обеспечить мгновенную обратную связь при вводе кода. Для этого он концентрируется на том, какой код вы добавляете или обновляете.
SonarQube - это центральный сервер, который обрабатывает полный анализ (запускаемый различными сканерами SonarQube). Его цель - дать 360-градусное представление о качестве вашей кодовой базы. Для этого он регулярно анализирует все исходные строки вашего проекта.
И SonarLint, и SonarQube используют одни и те же статические анализаторы исходного кода, большинство из которых написано с использованием технологии SonarSource.
Следует добавить, что SonarQube также выполняет сканирование с помощью сторонних анализаторов (findBugs, checkstyle, PMD), тогда как SonarLint их не включает. Я думаю, причина в приоритете производительности и поиске ошибок, основанных на байт-коде java.
Таким образом, ваши результаты в SonarQube и SonarLint могут отличаться, если в базовом профиле качества используются сторонние сканеры.
SonarQube - это сервер, на котором вы можете размещать свои проекты и выполнять анализ, а SonarLint - это агент, который позволяет нам подключаться к этому SonarQube и выполнять анализ удаленно. SonarLint можно использовать с IDE или запускать с помощью команд интерфейса командной строки.
SonarLint содержит собственный набор правил по умолчанию, но при подключении к SonarQube пользователи могут импортировать правила из SonarQube, которые на самом деле являются чем-то большим, чем просто стандартный набор правил. Мы можем интегрировать PDM, CodeStyle и многие другие средства проверки в SonarQube и создавать собственные правила.
Я хочу упомянуть два факта, которые я усвоил на собственном опыте: SonarLint не наследует эти настраиваемые правила от SonarQube, во-вторых, Sonar не работает с тестовыми классами.
Sonarqube выполняет проверку правил на сервере. Мы интегрировали его в наши сборки TFS. SonarLint работает в среде IDE, поэтому, прежде чем я зафиксирую свой код, я знаю, какие строки нарушают правила внутри IDE.