SonarQube und SonarLint Unterschied

87

Wie genau unterscheidet sich sonarQube von SonarLint? Mit SonarQube ist ein Server verknüpft, und Sonar Lint funktioniert eher wie ein Plugin. Aber was ist ihr spezifischer Unterschied?

Jeevan Varughese
quelle

Antworten:

129

SonarLint lebt nur in der IDE (IntelliJ, Eclipse und Visual Studio). Der Zweck besteht darin, während der Eingabe Ihres Codes sofortiges Feedback zu geben. Dazu konzentriert es sich darauf, welchen Code Sie hinzufügen oder aktualisieren.

SonarQube ist ein zentraler Server, der vollständige Analysen verarbeitet (ausgelöst durch die verschiedenen SonarQube-Scanner). Ziel ist es, eine 360 ​​° -Ansicht der Qualität Ihrer Codebasis zu geben. Zu diesem Zweck werden regelmäßig alle Quellzeilen Ihres Projekts analysiert.

Sowohl SonarLint als auch SonarQube basieren auf denselben statischen Quellcode-Analysatoren - die meisten davon werden mit der SonarSource-Technologie geschrieben.

Fabrice - SonarSource Team
quelle
Danke @Fabrice! Aber eine Folgefrage. Ich finde Unterschiede in den Berichten für Sonarqube und Sonar Flusen für dieselbe Version der Codebasis. Dies war das ursprüngliche Problem, das mich dazu veranlasste, diese Frage zu schreiben. Was könnte möglicherweise das Problem sein?
Jeevan Varughese
6
Sie sollten SonarLint mit SonarQube "verbinden" und Ihr lokales Projekt (in der IDE) an das Remote-Projekt (in SonarQube) binden, um sicherzustellen, dass Sie in beiden Welten dieselben Qualitätsprofile (= Regelsätze) verwenden.
Fabrice - SonarSource Team
Danke Fabrice. Dies könnte auch bedeuten, dass unterschiedliche Versionen unterschiedliche Regelsätze unterschiedliche Berichte liefern können, oder? Als ob es einen Unterschied zwischen v5.6- und v6.0-Berichten für dieselbe Version der Codebasis geben könnte.
Jeevan Varughese
1
Sie können dies interessant finden; Dieser Artikel hat mir geholfen, den Unterschied zwischen den drei verschiedenen Startmodi von SonarQube zu verstehen: Analyse (wer erstellt den Bericht in der SonarQube-Benutzeroberfläche), Vorschau und inkrementell (von SonarLint verwendet). blog.sonarsource.com/…
YB Ursache
23

Es sollte hinzugefügt werden, dass SonarQube auch Scans mit Analysatoren von Drittanbietern (findBugs, checkstyle, PMD) durchführt, während SonarLint diese nicht enthält. Ich denke, der Grund ist eine Priorisierung der Leistung und findBugs, die auf Java-Bytecode basieren.

Dabei können Ihre Ergebnisse in SonarQube und SonarLint variieren, wenn das zugrunde liegende Qualitätsprofil Scanner von Drittanbietern verwendet.

Guitarlum
quelle
2
Sie haben Recht @guitarlum, und der Hauptgrund ist nicht der von Ihnen erwähnte, sondern die Tatsache, dass wir wirklich glauben, dass SonarJava (der von SonarSource entwickelte Java-Analysator) PMD + Findbugs insgesamt überwiegt.
Fabrice - SonarSource Team
3
@ Fabrice-SonarSourceTeam Ich verstehe Ihre Argumentation und dies gilt möglicherweise für Standard-FindBugs und PMD, jedoch im Bereich der Anwendungssicherheit, nämlich FindSecurityBugs ( find-sec-bugs.github.io ), der meiner Meinung nach der beste Schwachstellenscan ist. SonarJava fällt zu kurz.
Guitarlum
4

SonarQube ist ein Server, auf dem Sie Ihre Projekte hosten und Analysen ausführen können, während SonarLint ein Agent ist, mit dem wir eine Verbindung zu diesem SonarQube herstellen und die Analyse remote ausführen können. SonarLint kann mit IDE verwendet oder auch über CLI-Befehle ausgeführt werden.

SonarLint enthält einen eigenen Satz von Standardregeln. Wenn Benutzer jedoch mit SonarQube verbunden sind, können sie Regeln aus SonarQube importieren, die eigentlich mehr als nur Standardregeln sind. Wir können PDM, CodeStyle und viele andere Prüfer in SonarQube integrieren und benutzerdefinierte Regeln erstellen.

Zwei Fakten, die ich erwähnen möchte, die ich aus meiner Erfahrung gelernt habe: SonarLint erbt diese benutzerdefinierten Regeln nicht von SonarQube, zweitens funktioniert Sonar nicht in Testklassen.

yug
quelle
0

Sonarqube führt die Regelbewertungen auf dem Server aus. Wir haben sie in unsere TFS-Builds integriert. SonarLint wird in der IDE ausgeführt. Bevor ich meinen Code festschreibe, weiß ich, welche Zeilen gegen welche Regeln in der IDE verstoßen.

Jeff Schreib
quelle
Die Frage war, wie sich der Scanner unterscheidet. Ihre Antwort wird als Voraussetzung für die Frage gegeben. Der Server und die Plugins sind in der Frage bereits erwähnt.
Jeevan Varughese