Чим саме 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 їх не включає. Я думаю, що причина полягає в пріоритетності продуктивності та findBugs, що покладаються на байт-код Java.
Таким чином, ваші результати у SonarQube та SonarLint можуть відрізнятися, якщо в базовому профілі якості використовуються сторонні сканери.
SonarQube - це сервер, на якому ви можете розміщувати свої проекти та виконувати аналіз, тоді як SonarLint - це агент, який дозволяє нам з'єднуватися з цим SonarQube та віддалено виконувати аналіз. SonarLint можна використовувати з IDE або також можна виконати за допомогою команд CLI.
SonarLint містить власний набір правил за замовчуванням, але при підключенні до SonarQube користувачі можуть імпортувати правила із SonarQube, які насправді є не просто стандартним набором правил. Ми можемо інтегрувати PDM, CodeStyle та багато інших засобів перевірки на SonarQube та створювати власні правила.
Я хочу зазначити два факти, які я дізнався зі свого досвіду: SonarLint не успадковує ці власні правила від SonarQube, по-друге, Sonar не працює на тестових класах.
Sonarqube виконує перевірку правил на сервері. Ми інтегрували його у наші збірки TFS. SonarLint працює в IDE, тому перед тим, як зафіксувати свій код, я знаю, які рядки порушують правила в IDE.