Différence SonarQube et SonarLint

89

En quoi sonarQube est-il différent de SonarLint? SonarQube est associé à un serveur et Sonar lint fonctionne plus comme un plugin. Mais quelle est leur différence spécifique?

Jeevan Varughese
la source

Réponses:

131

SonarLint vit uniquement dans l'IDE (IntelliJ, Eclipse et Visual Studio). Son but est de donner un retour instantané lorsque vous tapez votre code. Pour cela, il se concentre sur le code que vous ajoutez ou mettez à jour.

SonarQube est un serveur central qui traite des analyses complètes (déclenchées par les différents scanners SonarQube). Son but est de donner une vision à 360 ° de la qualité de votre base de code. Pour cela, il analyse régulièrement toutes les lignes sources de votre projet.

SonarLint et SonarQube reposent tous deux sur les mêmes analyseurs de code source statique, la plupart étant écrits à l'aide de la technologie SonarSource.

Fabrice - Équipe SonarSource
la source
Merci @Fabrice! Mais une question complémentaire. Je trouve une différence dans les rapports pour le sonarqube et les peluches de sonar pour la même version de la base de code. C'est le problème initial qui m'a amené à écrire cette question. Quel peut être le problème ?
Jeevan Varughese
7
Vous devez «connecter» SonarLint à SonarQube et lier votre projet local (dans l'EDI) au projet distant (dans SonarQube) afin de vous assurer que vous utilisez les mêmes profils de qualité (= jeux de règles) dans les deux mondes.
Fabrice - SonarSource Team
Merci Fabrice. Cela pourrait également signifier que différentes versions de différents ensembles de règles peuvent donner différents rapports, n'est-ce pas? Comme il peut y avoir une différence entre les rapports v5.6 et v6.0 pour la même version de base de code.
Jeevan Varughese
1
Vous pouvez trouver cela intéressant; cet article m'a aidé à comprendre la différence entre les 3 modes de lancement de SonarQube: analyse (qui génère le rapport dans SonarQube UI), aperçu et incrémental (utilisé par SonarLint). blog.sonarsource.com/…
YB Cause
23

Il faut ajouter que SonarQube effectue également des analyses avec des analyseurs tiers (findBugs, checkstyle, PMD) alors que SonarLint ne les inclut pas . Je pense que la raison en est une priorisation sur les performances et findBugs reposant sur le code octet Java.

Ainsi, vos résultats dans SonarQube et SonarLint peuvent varier si le profil de qualité sous-jacent utilise des scanners tiers.

guitarlum
la source
2
Vous avez raison @guitarlum, et la raison principale n'est pas celle que vous avez mentionnée, mais le fait que nous croyons vraiment que SonarJava (l'analyseur Java développé par SonarSource) surpasse complètement PMD + Findbugs.
Fabrice - SonarSource Team
3
@ Fabrice-SonarSourceTeam Je comprends votre raisonnement et cela peut-être vrai pour les FindBugs et PMD par défaut, cependant dans le domaine de la sécurité des applications, à savoir FindSecurityBugs ( find-sec-bugs.github.io ), qui à mon avis est le meilleur scan de vulnérabilité, SonarJava échoue.
guitarlum
4

SonarQube est un serveur sur lequel vous pouvez héberger vos projets et exécuter des analyses, tandis que SonarLint est un agent qui nous permet de nous connecter avec ce SonarQube et d'exécuter l'analyse à distance. SonarLint peut être utilisé avec IDE ou peut également être exécuté via des commandes CLI.

SonarLint contient son propre ensemble de règles par défaut, mais une fois connectés à SonarQube, les utilisateurs peuvent importer des règles de SonarQube qui sont en fait plus qu'un simple ensemble de règles standard. Nous pouvons intégrer PDM, CodeStyle et bien d'autres vérificateurs sur SonarQube et créer des règles personnalisées.

Deux faits que je veux mentionner et que j'ai appris de mon expérience, SonarLint n'héritera pas de ces règles personnalisées de SonarQube, deuxièmement, Sonar ne fonctionne pas sur les classes de test.

yug
la source
0

Sonarqube exécute les valiations de règles sur le serveur Nous l'avons intégré à nos builds TFS. SonarLint s'exécute dans l'EDI donc avant de valider mon code, je sais quelles lignes violent quelles règles à l'intérieur de l'IDE.

Jeff Schreib
la source
La question était de savoir en quoi le scanner diffère? Votre réponse est donnée comme prémisse à la question. Le serveur et les plugins sont déjà mentionnés dans la question.
Jeevan Varughese