SonarQube e diferença SonarLint

89

Como exatamente o sonarQube é diferente do SonarLint? O SonarQube tem um servidor associado a ele e o Sonar lint funciona mais como um plugin. Mas quais são suas diferenças específicas?

Jeevan Varughese
fonte

Respostas:

131

SonarLint reside apenas no IDE (IntelliJ, Eclipse e Visual Studio). Seu objetivo é fornecer feedback instantâneo enquanto você digita seu código. Para isso, ele se concentra em qual código você está adicionando ou atualizando.

SonarQube é um servidor central que processa análises completas (acionadas por vários scanners SonarQube). Seu objetivo é dar uma visão 360 ° da qualidade de sua base de código. Para isso, analisa regularmente todas as linhas de origem do seu projeto.

Tanto o SonarLint quanto o SonarQube contam com os mesmos analisadores de código-fonte estático - a maioria deles escritos com a tecnologia SonarSource.

Fabrice - Equipe SonarSource
fonte
Obrigado @Fabrice! Mas uma pergunta complementar. Estou encontrando diferenças nos relatórios do sonarqube e do lint do sonar para a mesma versão da base de código. Esse foi o problema original que me levou a escrever esta pergunta. Qual poderia ser o problema ?
Jeevan Varughese,
7
Você deve "conectar" o SonarLint ao SonarQube e vincular seu projeto local (no IDE) ao remoto (no SonarQube) para se certificar de que está usando os mesmos perfis de qualidade (= conjuntos de regras) em ambos os mundos.
Fabrice - Equipe SonarSource
Obrigado Fabrice. Isso também pode significar que versões diferentes e conjuntos de regras diferentes podem fornecer relatórios diferentes, certo? Como pode haver uma diferença entre os relatórios v5.6 e v6.0 para a mesma versão da base de código.
Jeevan Varughese,
1
Você pode achar isso interessante; este artigo me ajudou a entender a diferença entre os 3 modos diferentes de inicialização do SonarQube: análise (quem gera o relatório na IU do SonarQube), visualização e incremental (usado pelo SonarLint). blog.sonarsource.com/…
YB Causa
23

Deve-se acrescentar que o SonarQube também realiza varreduras com analisadores de terceiros (findBugs, checkstyle, PMD), enquanto o SonarLint não os inclui. Acho que o motivo é uma priorização no desempenho e findBugs que dependem do código de bytes java.

Assim, suas descobertas no SonarQube e no SonarLint podem variar, se o perfil de qualidade subjacente usar scanners de terceiros.

guitarlum
fonte
2
Você está certo @guitarlum, e o motivo principal não é o que você mencionou, mas o fato de que realmente acreditamos que o SonarJava (o analisador Java desenvolvido pela SonarSource) supera o PMD + Findbugs juntos.
Fabrice - Equipe SonarSource
3
@ Fabrice-SonarSourceTeam Eu entendo seu raciocínio e isso pode ser verdade para FindBugs e PMD padrão, porém na área de segurança de aplicativos, nomeadamente FindSecurityBugs ( find-sec-bugs.github.io ), que na minha opinião é a melhor verificação de vulnerabilidade, SonarJava fica aquém.
guitarlum
4

SonarQube é um servidor onde você pode hospedar seus projetos e executar análises, enquanto SonarLint é um agente que nos permite conectar com este SonarQube e executar a análise remotamente. SonarLint pode ser usado com IDE ou também pode ser executado via comandos CLI.

SonarLint contém seu próprio conjunto de regras padrão, mas quando conectado ao SonarQube, os usuários podem importar regras do SonarQube que são, na verdade, mais do que apenas um conjunto de regras padrão. Podemos integrar PDM, CodeStyle e muitos outros verificadores no SonarQube e criar regras personalizadas.

Quero mencionar dois fatos que aprendi com minha experiência: o SonarLint não herdará essas regras personalizadas do SonarQube; em segundo lugar, o Sonar não funciona em classes de teste.

puxão
fonte
0

Sonarqube executa as valiações de regras no servidor. Nós o integramos às nossas compilações TFS. O SonarLint é executado no IDE, portanto, antes de enviar meu código, sei quais linhas estão violando quais regras dentro do IDE.

Jeff Schreib
fonte
A questão era sobre como o scanner difere? Sua resposta é dada como premissa para a pergunta. O servidor e os plugins já são mencionados na pergunta.
Jeevan Varughese