Jenkins + SonarQube
Índice
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:
- Dentro da pasta do sonarqube acesse a pasta conf e edite o arquivo sonar.properties
- Para aumentar a capacidade do servidor web:
- remova o comentário "#sonar.web.javaOpts=-Xmx2048m -Xms1024m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true"
- Para aumentar a capacidade do compute engine
- remova o comentário "#sonar.ce.javaOpts=-Xmx2048m -Xms1024m -XX:+HeapDumpOnOutOfMemoryError -Djava.net.preferIPv4Stack=true"
- 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:
- Dentro da pasta do sonar scanner, acesse a pasta bin e edite o arquivo sonar-scanner.bat
- 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:
- sonar.host.url=http://sonarqube.mstech.com.br
Se o host tiver autenticação:
- sonar.login=seu.usuario
- sonar.password=sua.senha