SonarQube e SonarLint differenza


90

In che modo esattamente sonarQube è diverso da SonarLint? SonarQube ha un server associato e Sonar lint funziona più come un plugin. Ma quali sono le loro differenze specifiche?

Risposte:


135

SonarLint vive solo nell'IDE (IntelliJ, Eclipse e Visual Studio). Il suo scopo è fornire un feedback istantaneo durante la digitazione del codice. Per questo, si concentra sul codice che stai aggiungendo o aggiornando.

SonarQube è un server centrale che elabora analisi complete (attivate dai vari scanner SonarQube). Il suo scopo è quello di dare una visione a 360 ° della qualità della tua base di codice. Per questo, analizza regolarmente tutte le linee di origine del progetto.

Sia SonarLint che SonarQube si basano sugli stessi analizzatori di codice sorgente statico, la maggior parte dei quali viene scritta utilizzando la tecnologia SonarSource.


Grazie @Fabrice! Ma una domanda successiva. Ho riscontrato differenze nei rapporti per sonarqube e lanugine sonar per la stessa versione del codice base. Questo è stato il problema originale che mi ha portato a scrivere questa domanda. Quale potrebbe essere il problema?
Jeevan Varughese

7
Dovresti "connettere" SonarLint a SonarQube e associare il tuo progetto locale (nell'IDE) a quello remoto (in SonarQube) per assicurarti di utilizzare gli stessi profili di qualità (= set di regole) in entrambi i mondi.
Fabrice - SonarSource Team

Grazie Fabrice. Ciò potrebbe anche significare che una versione diversa di set di regole diversi può fornire rapporti diversi, giusto? Come se potesse esserci una differenza tra i report v5.6 e v6.0 per la stessa versione del codice base.
Jeevan Varughese

1
Potresti trovarlo interessante; questo articolo mi ha aiutato a capire la differenza tra le 3 diverse modalità di lancio di SonarQube: analisi (che genera il report nell'interfaccia utente di SonarQube), anteprima e incrementale (utilizzata da SonarLint). blog.sonarsource.com/…
YB Cause

23

Va aggiunto che SonarQube esegue anche scansioni con analizzatori di terze parti (findBugs, checkstyle, PMD) mentre SonarLint non li include. Penso che il motivo sia una priorità sulle prestazioni e findBugs che si basa sul codice byte java.

Di conseguenza, le tue scoperte in SonarQube e SonarLint possono variare, se il profilo di qualità sottostante utilizza scanner di terze parti.


2
Hai ragione @guitarlum, e il motivo principale non è quello che hai menzionato, ma il fatto che crediamo veramente che SonarJava (l'analizzatore Java sviluppato da SonarSource) superi del tutto PMD + Findbugs.
Fabrice - SonarSource Team

3
@ Fabrice-SonarSourceTeam Capisco il tuo ragionamento e questo potrebbe essere vero per FindBugs e PMD predefiniti, tuttavia nell'area della sicurezza delle applicazioni, ovvero FindSecurityBugs ( find-sec-bugs.github.io ), che a mio parere è la migliore scansione di vulnerabilità, SonarJava non è all'altezza.
guitarlum

5

SonarQube è un server dove puoi ospitare i tuoi progetti ed eseguire analisi, mentre SonarLint è un agente che ci permette di connetterci con questo SonarQube ed eseguire l'analisi da remoto. SonarLint può essere utilizzato con IDE o può anche essere eseguito tramite comandi CLI.

SonarLint contiene il proprio set di regole predefinite, ma quando è connesso a SonarQube, gli utenti possono importare regole da SonarQube che in realtà sono più di un semplice set di regole standard. Possiamo integrare PDM, CodeStyle e molti altri checker su SonarQube e creare regole personalizzate.

Due fatti che voglio menzionare che ho imparato dalla mia esperienza, SonarLint non erediterà quelle regole personalizzate da SonarQube, in secondo luogo Sonar non funziona sulle classi Test.


0

Sonarqube esegue le valutazioni delle regole sul server. L'abbiamo integrato nelle nostre build TFS. SonarLint viene eseguito nell'IDE, quindi prima di eseguire il commit del codice so quali linee stanno violando le regole all'interno dell'IDE.


La domanda riguardava le differenze tra lo scanner? La tua risposta è data come premessa alla domanda. Il server e i plugin sono già menzionati nella domanda.
Jeevan Varughese

-1

SonarLint : viene utilizzato solo nell'IDE (IntelliJ, Eclipse e Visual Studio). Il suo scopo è fornire un feedback istantaneo durante la digitazione del codice.

SonarQube : è un server centrale che elabora analisi statiche complete. Il suo scopo è quello di dare una visione a 360 ° della qualità della tua base di codice. Per questo, analizza tutte le linee di origine del tuo progetto. Puoi configurare come analizzare i tuoi progetti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.