Jenkins + SonarQube

De MSTECH wiki
Ir para: navegação, pesquisa

Como configurar

Plugin no Jenkins

Adicione o plugin do sonarqube

SonarQube na versão 2.4.4


Configurar o server do SonarQube no Jenkins

No Jenkins, vá em Gerenciar Jenkins -> Configurar o Sistema. Procure o bloco SonarQube servers e preencha os campos

Name: Nome desta instalação

Server URL: URL do SonarQube

Server Version: Default


Ativar o SonarQube Scanner

Acesse Gerenciar Jenkins -> Global Tool Configuration Procure o bloco SonarQube Scanner Este bloco virá desabilitado e temos que configurar duas coisas:

Name: Nome do seu scanner

Intall From Maven Central: Default.


Configurando o projeto

Navegue até seu projeto no Jenkins e clique em Configurar. No bloco Build, clique na lista “Adicionar passo no build”. Selecione o Execute SonarQube Scanner.

Preencha os campos:

Task to run: Deixe em branco JDK: Inherit From Job Path to project properties: Coloque o caminho para o arquivo de configuração do Sonar (sonar-project.properties). Analysis properties: Caso você preencheu o campo acima, não preencha este. Caso não, coloque aqui o conteúdo do seu arquivo de configuração do sonar.


Execução

Aparecerá o logo do SonarQube no seu projeto e agora você poderá executar a sua análise de projeto e ver o resultado. E logo após a execução do Sonar pelo Jenquins você poderá acessar o site do Sonar e ver o resultado do seu projeto.


JVMs básicas do Sonarqube e Sonar Scanner

Apenas para entender o conceito, o sonarqube possui:

  • 1 JVM para rodar o servidor web
  • 1 JVM de serviço para processar os dados enviados pelo sonar scanner e enviar para o servidor web.

Enquanto que o sonar scanner possui:

  • 1 JVM que analisa o código baseado nas configurações e plugins existentes, enviando para o sonarqube.


Configuração da JVM

Dependendo das configurações da máquina ou programas em execução, pode acontecer de uma das JVMs darem problema de falta de memória ao executar, pode acontecer durante a execução do sonar scanner ou no momento que o sonarqube está processando os dados para visualizar no site.

Para resolver este problema é possível realizar algumas configurações para aumentar a capacidade das JVMs.


Configurando o Sonarqube:

Se estiver executando o sonar local, acompanhe os passos:

  1. Dentro da pasta do sonarqube acesse a pasta conf e edite o arquivo sonar.properties
  2. Para aumentar a capacidade do servidor web:
    1. remova o comentário "#sonar.web.javaOpts=-Xmx2048m -Xms1024m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true"
  3. Para aumentar a capacidade do compute engine
    1. remova o comentário "#sonar.ce.javaOpts=-Xmx2048m -Xms1024m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true"
  4. Salve o arquivo e tente executar novamente.


Dica: O que mais requer memória é o serviço, dificilmente dará problemas de memória no site.


Configurando o Sonar scanner:
  1. Dentro da pasta do sonar scanner, acesse a pasta bin e edite o arquivo sonar-scanner.bat
  2. Na linha 76 antes do %JAVA_EXEC% copie e cole o seguinte comando "set SONAR_SCANNER_OPTS=-Xmx512m -XX:MaxPermSize=128m"


Dica: Dependendo da complexidade do projeto, talvez seja necessário aumentar mais do que 512mb da JVM.


Conexão com servidor web

É possível configurar o sonar scanner para enviar os dados da análise do código para um servidor web do sonarqube, o que facilita não ter que rodar o server local. Para fazer isso, dentro da pasta do sonar scanner, acesse a pasta conf e edite o arquivo sonar.properties.

Para incluir o host:

Se o host tiver autenticação:

  • sonar.login=seu.usuario
  • sonar.password=sua.senha