Pergunta

Estou com um problema simples, provavelmente com uma resposta simples, mas não consigo encontrar o que é.Queremos implantar o SonarQube junto com o Checkstyle e algumas outras ferramentas, mas não conseguimos descobrir se ele se destina a uma implantação de servidor centralizada ou em cada máquina do desenvolvedor.Todos os tutoriais mostram instalações em máquinas separadas e sendo usadas no host local, embora haja um exemplo de instância pública, e os requisitos e especificações certamente se parecem com serviços.

Por outro lado, não estou entendendo como os desenvolvedores enviam seu código para verificação se ele estiver em um servidor.

Então, resumindo, como ele é implantado?Qualquer lista de verificação ou algo semelhante seria de grande ajuda.

Foi útil?

Solução

SonarQube (anteriormente apenas "Sonar") é um sistema baseado em servidor.Claro que você pode instalá-lo em sua máquina local (os requisitos de hardware são mínimos).Mas é um servidor central com banco de dados.

As análises são realizadas por algum software "cliente" do Sonar, que pode ser o sonar runner, o sonar ant task, o plugin sonar Eclipse, etc.Os resultados da análise podem ser automaticamente carregados no servidor, onde podem ser acessados ​​através do aplicativo Web do sonar.

Em um ambiente com muitos desenvolvedores, você deve executar um servidor de compilação (por exemplo,Hudson ou Jenkins), que realiza análises automáticas de sonar como parte da construção noturna.Outras programações são possíveis, mas os desenvolvedores devem saber quando podem esperar atualizações dos resultados da análise do lado do servidor.Os resultados da análise automatizada podem ser exibidos no editor Eclipse do desenvolvedor individual por meio do plug-in sonar Eclipse.

A documentação arquitetônica do Sonar é bastante escassa.Procurei uma imagem para visualizar o que acabei de descrever, mas não encontrei ...

Outras dicas

A arquitetura do Sonarqube "Runtime" tem vários elementos:

    .
  1. server sonarqube . Contém um banco de dados (por exemplo, mysql) e Servidor da Web incorporado (Tomcat). O servidor Sonarqube armazena o resultados de análises (as métricas), mas não executa o código análises. Este servidor fornece uma UI da Web que mostra o painel de Os projetos, várias métricas e deteche em código, opções de administrador. Ele usa uma arquitetura plugada - você pode adicionar / remover funcitionality via plug-ins.
  2. programa que executa a análise de código na máquina do desenvolvedor . Existem opções: (a) Se estiverem usando o Eclipse ou o Intellij, eles podem usar o respectivo plug-in de sonarlint, que fornece propriedades de configuração, opções de menu para executar a análise, etc. .; (b) Os desenvolvedores também podem executar análises de código via Maven (mvn sonar:sonar) ou Gradue (gradlew sonarqube); (c) Os desenvolvedores podem executar as várias análises de código por meio de um programa chamado Sonarqube Runner. Todas essas opções de programas que executam a análise na máquina de desenvolvedores precisam ser configuradas para se comunicar com um servidor Sonarqube. Por exemplo, quando você executa a análise de código no Intellij usando Sonarlint, as métricas serão carregadas para o servidor. Este servidor é normalmente compartilhado por todos os desenvolvedores, mas também pode ser localhost.
  3. programa que executa análise de código no servidor CI / CD . O trabalho / pipeline que constrói um projeto de software pode ser configurado para executar a análise de código Sonarqube. Pode ser feito via Maven ou Gradle como na máquina do desenvolvedor, ou através de um plug-in. Há Sonarqube Ci plug-ins para Jenkins, Hudson, Bamboo e outros . Dependendo do tamanho do seu projeto, você pode configurar a análise de código para executar apenas uma vez por dia e não em cada código commit ou alterações nas dependências. A análise de código Sonarqube executada no servidor CI também enviará as métricas geradas para o servidor Sonarqube.
  4. A documentação da arquitetura Sonarqube é muito pobre (não ausente), então é difícil conseguir a grande figura. Eu espero que isso ajude.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top