Diferencia de SonarQube y SonarLint

89

¿En qué se diferencia exactamente sonarQube de SonarLint? SonarQube tiene un servidor asociado y Sonar lint funciona más como un complemento. Pero, ¿cuáles son sus diferencias específicas?

Jeevan Varughese
fuente

Respuestas:

131

SonarLint vive solo en el IDE (IntelliJ, Eclipse y Visual Studio). Su propósito es brindar retroalimentación instantánea a medida que escribe su código. Para ello, se concentra en qué código está agregando o actualizando.

SonarQube es un servidor central que procesa análisis completos (activados por los diversos escáneres SonarQube). Su propósito es brindar una visión de 360 ​​° de la calidad de su código base. Para ello, analiza todas las líneas fuente de su proyecto de forma periódica.

Tanto SonarLint como SonarQube se basan en los mismos analizadores de código fuente estático, la mayoría de ellos escritos con la tecnología SonarSource.

Fabrice - Equipo de SonarSource
fuente
¡Gracias @Fabrice! Pero una pregunta de seguimiento. Estoy encontrando diferencias en los informes de sonarqube y sonar lint para la misma versión del código base. Este fue el problema original que me llevó a escribir esta pregunta. Cuál podría ser el problema ?
Jeevan Varughese
7
Debe "conectar" SonarLint a SonarQube y vincular su proyecto local (en el IDE) al remoto (en SonarQube) para asegurarse de que está utilizando los mismos perfiles de calidad (= conjuntos de reglas) en ambos mundos.
Fabrice - Equipo SonarSource
Gracias Fabrice. Esto también podría significar que una versión diferente, los diferentes conjuntos de reglas pueden dar diferentes informes, ¿verdad? Como si pudiera haber una diferencia entre los informes v5.6 y v6.0 para la misma versión del código base.
Jeevan Varughese
1
Puede encontrar esto interesante; este artículo me ayudó a comprender la diferencia entre los 3 modos de lanzamiento diferentes de SonarQube: análisis (quién genera el informe en la interfaz de usuario de SonarQube), vista previa e incremental (utilizado por SonarLint). blog.sonarsource.com/…
YB Cause
23

Debe agregarse que SonarQube también realiza escaneos con analizadores de terceros (findBugs, checkstyle, PMD) mientras que SonarLint no los incluye. Creo que la razón es una priorización en el rendimiento y findBugs que se basan en el código de bytes de Java.

Por lo tanto, sus hallazgos en SonarQube y SonarLint pueden variar, si el perfil de calidad subyacente utiliza escáneres de terceros.

guitarrista
fuente
2
Tienes razón @guitarlum, y la razón principal no es la que mencionaste, sino el hecho de que realmente creemos que SonarJava (el analizador de Java desarrollado por SonarSource) supera por completo a PMD + Findbugs.
Fabrice - Equipo SonarSource
3
@ Fabrice-SonarSourceTeam Entiendo su razonamiento y esto puede ser cierto para FindBugs y PMD predeterminados, sin embargo, en el área de seguridad de la aplicación, es decir FindSecurityBugs ( find-sec-bugs.github.io ), que en mi opinión es el mejor análisis de vulnerabilidades, SonarJava se queda corto.
guitarlum
4

SonarQube es un servidor donde puedes alojar tus proyectos y ejecutar análisis, mientras que SonarLint es un agente que nos permite conectarnos con este SonarQube y ejecutar el análisis de forma remota. SonarLint se puede utilizar con IDE o también se puede ejecutar mediante comandos CLI.

SonarLint contiene su propio conjunto de reglas predeterminadas, pero cuando se conecta a SonarQube, los usuarios pueden importar reglas de SonarQube, que en realidad son más que un conjunto de reglas estándar. Podemos integrar PDM, CodeStyle y muchos otros verificadores en SonarQube y crear reglas personalizadas.

Dos hechos que quiero mencionar que aprendí de mi experiencia, SonarLint no heredará esas reglas personalizadas de SonarQube, en segundo lugar, Sonar no funciona en las clases de prueba.

yug
fuente
0

Sonarqube ejecuta las validaciones de reglas en el servidor. Lo integramos a nuestras compilaciones TFS. SonarLint se ejecuta en el IDE, por lo que antes de enviar mi código, sé qué líneas violan qué reglas dentro del IDE.

Jeff Schreib
fuente
La pregunta era en qué se diferenciaba el escáner. Tu respuesta se da como premisa a la pregunta. El servidor y los complementos ya se mencionan en la pregunta.
Jeevan Varughese