116 votes

Différence entre SonarQube et SonarLint

En quoi sonarQube est-il différent de SonarLint ? SonarQube est associé à un serveur et SonarLint fonctionne plutôt comme un plugin. Mais quelles sont leurs différences spécifiques ?

162voto

SonarLint ne vit que dans l'IDE (IntelliJ, Eclipse et Visual Studio). Son but est de donner un retour d'information 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 les 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 l'ensemble des lignes de sources de votre projet.

SonarLint et SonarQube s'appuient tous deux sur les mêmes analyseurs statiques de code source - la plupart d'entre eux étant écrits à l'aide de la technologie SonarSource.

2 votes

Merci @Fabrice ! Mais une question complémentaire. Je trouve des différences dans les rapports pour sonarqube et sonar lint pour la même version de la base de code. C'est le problème initial qui m'a conduit à écrire cette question. Quel pourrait être le problème ?

11 votes

Vous devez "connecter" SonarLint à SonarQube et lier votre projet local (dans l'IDE) au projet distant (dans SonarQube) afin de vous assurer que vous utilisez les mêmes profils de qualité (= ensembles de règles) dans les deux mondes.

0 votes

Merci Fabrice. Cela pourrait également signifier que des versions différentes donneront des rapports différents, n'est-ce pas ? Par exemple, il peut y avoir une différence entre les rapports v5.6 et v6.0 pour la même version du code de base.

27voto

guitarlum Points 300

Il convient d'ajouter que SonarQube effectue également des analyses avec des analyseurs tiers (findBugs, checkstyle, PMD) alors que SonarLint n'est pas les inclure. Je pense que la raison est une priorité sur les performances et que findBugs s'appuie sur le byte-code java.

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

2 votes

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 PMD + Findbugs ensemble.

3 votes

@Fabrice-SonarSourceTeam Je comprends votre raisonnement et cela est peut-être vrai pour les FindBugs et PMD par défaut, mais dans le domaine de la sécurité des applications, à savoir FindSecurityBugs ( trouver-sec-bugs.github.io ), qui à mon avis est le meilleur scanner de vulnérabilité, SonarJava n'est pas à la hauteur.

10voto

yug Points 44

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

SonarLint contient son propre ensemble de règles par défaut mais lorsqu'il est connecté à 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 de nombreux autres vérificateurs à SonarQube et créer des règles personnalisées.

Je voudrais mentionner deux faits que j'ai appris de mon expérience : SonarLint n'héritera pas de ces règles personnalisées de SonarQube, et Sonar ne fonctionne pas sur les classes Test.

0voto

Jeff Schreib Points 39

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'IDE. Ainsi, avant de valider mon code, je sais quelles lignes enfreignent quelles règles dans l'IDE.

0 votes

La question était de savoir comment 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.

0voto

Jerem Points 1

En outre, SonarLint dispose d'une solution de "détection des secrets" axée sur les informations d'identification en nuage qui s'appliquent à tous les fichiers de configuration, c'est-à-dire qu'elles sont indépendantes de la langue, ce qui n'est pas le cas de SonarQube.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X