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.