Sonar Qube é uma ferramenta que permite analisar métricas no código fonte de um projeto e gerar relatórios a partir dela, como a própria descrição diz “é um lugar para gerenciar a qualidade do código”.
Usando o Maven 2 integrado com o Sonar Qube para executar a análise do código fonte quando for necessário.
Bastas realizar o donwload do Sonar Qube, última versão. Para instalar o Sonar, descompacte o arquivo sonar-x.x.zip.
Você pode manter a configuração básica padrão da instalação que usa o banco de dados H2. Mas sempre utilizo a configuração usando o MySQL.
Podemos configurar um schema de banco de dados específico para o Sonar Qube no MySQL, ou utilizar um existente. Então, conecte no MySQL como root e execute os comandos a seguir.
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER ‘sonar’ IDENTIFIED BY ‘sonar’;
GRANT ALL ON sonar.* TO ‘sonar’@’%’ IDENTIFIED BY ‘sonar’;
GRANT ALL ON sonar.* TO ‘sonar’@’localhost’ IDENTIFIED BY ‘sonar’;
FLUSH PRIVILEGES;
após a criação do banco de dados e usuário Sonar Qube com sucesso, vamos para o próximo passo.
Configura nas variáveis de ambiente(windows) as variáveis abaixo:
Nome: SONAR_RUNNER_HOME
Valor: C:sonarqube-x.x.xbin
e
Nome: Path
Valor: C:sonarqube-x.x.xbin
Edite o arquivo de configuração $SONA_HOME/conf/sonar.properties comente as linhas do H2 database(já vem comentada).
#sonar.jdbc.url=jdbc:h2:tcp://localhost:9092/sonar
#sonar.jdbc.driverClassName=org.h2.Driver
Agora, adicione a configuração do MySQL.
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
Eu não uso e não aconselho a utilização das duas linhas abaixo. Elas impactam em erro na subida do Sonar Qube.
sonar.jdbc.driverClassName=com.mysql.jdbc.Driver
sonar.jdbc.validationQuery=select 1
Ok. Salve o arquivo de configuração.
Agora inicie o Sonar Qube.
$ /usr/local/sonar-3.2/bin//sonar.sh start
$ Starting sonar…
$ Started sonar.
No diretório bin/ você deve selecionar o seu sistema operacional.
Acesse http://localhost:9000 e veja a interface gráfica dele, sem projetos, ainda.
O último é configurar o Maven, você NÃO precisa modificar o arquivo POM.xml do seu projeto, para adicionar plugins basta editar o arquivo settings.xml e acrescentar uma profile do Sonar Qube, conforme a seguir.
$ sudo vim ~/.m2/settings.xml
<settings>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar</sonar.jdbc.url>
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<sonar.host.url>http://localhost:9000</sonar.host.url>
</properties>
</profile>
</profiles>
</settings>
Agora o Sonar Qube está configurado e integrado ao Maven. A partir do seu projeto você poderá criar um projeto no Sonar Qube e realizar a análise do código fonte apenas com uma linha de comando.
$ mvn sonar:sonar
E fim 😉