Різниця SonarQube та SonarLint


89

Чим саме sonarQube відрізняється від SonarLint? SonarQube має пов’язаний із ним сервер, і Sonar lint працює більше як плагін. Але в чому їх конкретна різниця?

Відповіді:


131

SonarLint живе лише в IDE (IntelliJ, Eclipse та Visual Studio). Його мета - дати миттєвий зворотний зв’язок під час введення коду. Для цього він концентрується на тому, який код ви додаєте або оновлюєте.

SonarQube - це центральний сервер, який обробляє повний аналіз (ініційований різними сканерами SonarQube). Його мета - дати на 360 ° бачення якості вашої кодової бази. Для цього він регулярно аналізує всі вихідні рядки вашого проекту.

І SonarLint, і SonarQube покладаються на однакові статичні аналізатори вихідного коду - більшість із них написані за допомогою технології SonarSource.


Дякую @Fabrice! Але одне наступне питання. Я знаходжу різницю у звітах для sonarqube та sonar lint для тієї самої версії бази коду. Це була початкова проблема, яка змусила мене написати це питання. У чому може бути проблема?
Jeevan Varughese

7
Вам слід "підключити" SonarLint до SonarQube і прив'язати ваш локальний проект (в IDE) до віддаленого (у SonarQube), щоб переконатися, що ви використовуєте однакові профілі якості (= набори правил) в обох світах.
Фабріс - Команда SonarSource

Дякую Фабріс. Це також може означати, що в різних версіях різні набори правил можуть давати різні звіти, чи не так? Як може бути різниця між звітами v5.6 та v6.0 для однієї версії кодової бази.
Jeevan Varughese

1
Вам це може здатися цікавим; ця стаття допомогла мені зрозуміти різницю між трьома різними режимами запуску SonarQube: аналіз (хто створює звіт у користувацькому інтерфейсі SonarQube), попередній перегляд та інкрементальний (використовується SonarLint). blog.sonarsource.com/…
Причина YB

23

Слід додати, що SonarQube також виконує сканування за допомогою сторонніх аналізаторів (findBugs, checkstyle, PMD), тоді як SonarLint їх не включає. Я думаю, що причина полягає в пріоритетності продуктивності та findBugs, що покладаються на байт-код Java.

Таким чином, ваші результати у SonarQube та SonarLint можуть відрізнятися, якщо в базовому профілі якості використовуються сторонні сканери.


2
Ви маєте рацію @guitarlum, і основною причиною є не та, про яку ви згадали, а той факт, що ми справді вважаємо, що SonarJava (аналізатор Java, розроблений SonarSource), взагалі переважає PMD + Findbugs.
Фабріс - Команда SonarSource

3
@ Fabrice-SonarSourceTeam Я розумію ваші міркування, і це, можливо, стосується FindBugs та PMD за замовчуванням, однак у сфері безпеки додатків, а саме FindSecurityBugs ( find-sec-bugs.github.io ), що, на мій погляд, є найкращим скануванням на вразливість, SonarJava не вдається.
гітаралум

4

SonarQube - це сервер, на якому ви можете розміщувати свої проекти та виконувати аналіз, тоді як SonarLint - це агент, який дозволяє нам з'єднуватися з цим SonarQube та віддалено виконувати аналіз. SonarLint можна використовувати з IDE або також можна виконати за допомогою команд CLI.

SonarLint містить власний набір правил за замовчуванням, але при підключенні до SonarQube користувачі можуть імпортувати правила із SonarQube, які насправді є не просто стандартним набором правил. Ми можемо інтегрувати PDM, CodeStyle та багато інших засобів перевірки на SonarQube та створювати власні правила.

Я хочу зазначити два факти, які я дізнався зі свого досвіду: SonarLint не успадковує ці власні правила від SonarQube, по-друге, Sonar не працює на тестових класах.


0

Sonarqube виконує перевірку правил на сервері. Ми інтегрували його у наші збірки TFS. SonarLint працює в IDE, тому перед тим, як зафіксувати свій код, я знаю, які рядки порушують правила в IDE.


Питання було про те, чим відрізняється сканер? Ваша відповідь дається як передумова до питання. Сервер та плагіни вже згадані у питанні.
Jeevan Varughese
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.