Configuração do SonarQube para Análise de Código

Visão Geral do SonarQube

O SonarQube é uma plataforma de análise de qualidade de código que permite identificar código irregular, potenciais bugs, vulnerabilidades de segurança e code smells. A ferramenta suporta múltiplas linguagens de programação e oferece relatórios detalhados sobre a saúde do projeto.

Instalação do Servider SonarQube

O primeiro passo consiste em baixar o servidor SonarQube diretamente do site oficial. Após o download, descompacte o arquivo e configure o arquivo sonar.properties com as credenciais do banco de dados e demais parâmetros necessários.

Após a configuração, enicie o serviço e acesso o painel administrativo através do endereço http://localhost:9000.

Configuração da Integração com Maven

Para analisar projetos Java utilizando Maven, é necessário configurar o arquivo settings.xml com as informações do servidor SonarQube. Adicione o seguinte conteúdo ao arquivo de configurações do Maven:

<profiles>  
    <profile>  
        <id>analise-codigo</id>  
        <activation>  
            <activeByDefault>true</activeByDefault>  
        </activation>  
        <properties>  
            <sonar.host.url>http://localhost:9000</sonar.host.url>  
        </properties>  
    </profile>  
</profiles>

<pluginGroups>  
    <pluginGroup>org.sonarsource.scanner.maven</pluginGroup>  
</pluginGroups>

Com a configuração realizada, execute o comando de análise dentro do diretório do projeto:

mvn sonar:sonar

Configuração do Banco de Dados MySQL

Crie um banco de dados dedicado para o SonarQube com codificação UTF-8:

CREATE DATABASE sonar_db CHARACTER SET utf8 COLLATE utf8_general_ci;

Instalação em Ambiente Linux

Preparação do Ambiente

Instale as ferramentas necessárias para a configuração:

yum -y install vim*
yum install zip unzip

Criação do Usuário

useradd sonarUsuario
chown -R sonarUsuario:sonarUsuario /opt/sonarqube

Configuração de Variáveis de Ambiente

Edite o arquivo /etc/profile para incluir as variáveis de ambiente do Java e Maven:

export JAVA_HOME=/opt/jdk1.8.0_11   
export PATH=$PATH:$JAVA_HOME/bin  
   
export MAVEN_HOME=/usr/local/maven/apache-maven-3.6.1  
export PATH=$PATH:$MAVEN_HOME/bin

Após a edição, carregue as novas configurações:

source /etc/profile

Permissões de Execução

chmod a+x /usr/local/maven/apache-maven-3.6.1/bin/mvn

Comandos de Análise Local

Utilizando Maven

mvn sonar:sonar -Dsonar.projectKey=meu-projeto -Dsonar.host.url=http://localhost:9000 -Dsonar.login=token-gerado

Utilizando Scanner Dedicado

cd /root/.jenkins/workspace/meu-projeto
sonar-scanner -Dsonar.projectKey=meu-projeto -Dsonar.projectName=meu-projeto -Dsonar.sources=. -Dsonar.sourceEncoding=UTF-8 -Dsonar.version=1.0 -Dsonar.binaries=bin -Dsonar.language=java -Dsonar.java.binaries=/root/.jenkins/workspace/meu-projeto

Configurações para Projetos de Grande Porte

Projetos com grande volume de código requieren ajustes de memória para garantir o funcionamento adequado do SonarQube. Edite o arquivo de propriedades do SonarQube com os seguintes parâmetros:

sonar.web.javaOpts=-Xmx8192m -Xms512m -XX:MaxPermSize=8192m
sonar.ce.javaOpts=-Xmx8192m -Xms512m -XX:MaxPermSize=8192m
sonar.search.javaOpts=-Xmx8912m -Xms512m -XX:MaxPermSize=8192m

Além disso, incremente o tamanho máximoAllowed do MySQL para evitar problemas durante a escrita de dados:

max_allowed_packet=2048M

Considerações Finais

A configuração adequada do SonarQube permite integração contínua em pipelines de CI/CD, oferecendo feedback imediato sobre a qualidade do código. Recomenda-se ajustar os parâmetros de memória cnoforme o tamanho do projeto e a disponibilidade de recursos do servidor.

Tags: SonarQube java maven analise-estatica codigo-quality

Publicado em 7-6 17:05