Configurando o Sonar e inspecionando um sistema
Nesse post vamos aprender a configurar o Sonar na sua máquina e disparar a inspeção para uma aplicação .NET de exemplo. Escrevi esse tutorial em 5 passos para permitir que o Sonar funcione como um serviço que não precisa de nenhuma permissão administrativa. Significa que todo esse procedimento poderá ser executado mesmo no seu local de trabalho. Agradeço a atenção e espero que se divirtam muito, nos próximos postos vou mostrar como incluir novos componentes no Sonar, como disparar e registrar os testes automatizados, e mais sobre o Sonar Snitch.
Um grande abraço a todos, e boa leitura.
1º Passo – Fazer os downloads iniciais
Baixar o Sonar - Versão 3.7
Baixar o Sonar Runner 2.4
Ambos no endereço abaixo:
Baixar alguma versão do Java, 6 ou superior.
Recomento utilizar uma estrutura de diretórios que unifique
todos os downloads, isso vai ajudar na implantação da sua configuração em
outras máquinas.
Por exemplo:
\\NOTE\Users\Erick\Desktop\Sonar
\\NOTE\Users\Erick\Desktop\Sonar\jre7
\\NOTE\Users\Erick\Desktop\Sonar\sonar-3.7.4
\\NOTE\Users\Erick\Desktop\Sonar\sonar-runner-2.4
\\NOTE\Users\Erick\Desktop\Sonar
\\NOTE\Users\Erick\Desktop\Sonar\jre7
\\NOTE\Users\Erick\Desktop\Sonar\sonar-3.7.4
\\NOTE\Users\Erick\Desktop\Sonar\sonar-runner-2.4
Baixar o Plugin C# e copiar o arquivo .jar para a pasta de plugins do sonar.
.\sonar-3.7.4\extensions\plugins\sonar-csharp-plugin-3.2.1.jar
Baixar nossa aplicação de exemplo Sonar Snitch
O Sonar Snitch é uma aplicação que fiz que permite consultar
as diferenças nos indicadores do Sonar em um intervalo de tempo qualquer. Vou
comentar em outros posts sobre ela e como tirar melhor proveito dela para
acompanhamento periódico.
No link acima clique em download para baixar todo o código
fonte do projeto em um arquivo zip. Já estão versionados todos os arquivos de
configuração para que a aplicação seja inspecionada no Sonar.
2º Passo – Configuração do Sonar (servidor)
O arquivo .\sonar-3.7.4\conf\sonar.properties
O arquivo sonar.properties contém as configurações somente desta instância do servidor do Sonar. É importante lembrar disso pois quando configurarmos o Sonar Runner vamos repetir algumas das configurações.
A principal configuração que temos que fazer aqui é o banco.
Basta apontar para uma estrutura e o Sonar vai fazer o restante, vai criar toda
a estrutura se for um banco novo, vai atualizar a estrutura, se necessário,
caso seja uma atualização de versão.
É importante que na primeira utilização o banco esteja
configurado com um usuário que tenha acesso para DDL, caso uma organização queira
após sua configuração inicial, pode ser alterado para um usuário com acesso DML
somente para evitar atualizações não esperadas.
Bom, vamos começar a configurar nosso servidor. Para isso
vamos precisar decidir onde o banco será criado. O Sonar oferece suporte a uma
bela gama de servidores, como Oracle, SQL Server, My SQL, PostgreSQL e o menos
recomendado e que vem embutido nele para apresentações H2. Vamos seguir com o
H2 nessa apresentação, pois já vem embutido e pode ser duplicado em qualquer
lugar. Mas se pensa em usar o Sonar em qualquer lugar além de sua própria
máquina esse banco não vai servir, porque não permite acesso remoto. Consulte
nossa seção de configuração de bancos (em construção).
Procure no arquivo a configuração de credenciais e configure
o usuário e senha. O exemplo está
configurado para a configuração básica do H2.
#----- Credentials
# The schema must be created first.
sonar.jdbc.username: sonar
sonar.jdbc.password: sonar
# The schema must be created first.
sonar.jdbc.username: sonar
sonar.jdbc.password: sonar
Depois procure no arquivo a configuração para o banco H2 e
descomente sua configuração padrão.
#----- Embedded database H2
# Comment the following line to deactivate the default embedded database.
sonar.jdbc.url: jdbc:h2:tcp://localhost:9092/sonar
# Comment the following line to deactivate the default embedded database.
sonar.jdbc.url: jdbc:h2:tcp://localhost:9092/sonar
Parabéns. Você configurou seu primeiro servidor Sonar pronto
para ser executado em sua máquina.
Vamos testar?
Abra a pasta .\sonar-3.7.4\bin\windows-x86-32 e execute o
arquivo StartSonar.bat
Será iniciado um arquivo aplicativo Console que vai levantar
o Sonar na porta 9000.
Console do Sonar monitorando a porta 9000
Com isso podemos usar qualquer navegador para acessar.
Dashboard web do Sonar
3º Passo – Configuração do Sonar Runner
O Sonar Runner é o aplicativo que vai executar todos os
processos de qualidade que você configurar e vai guardar o resultado no banco,
apesar dele ter uma integração com o servidor web, ele não reaproveita suas
configurações.
Com isso vamos precisar configurar novamente o banco de dados,
além de novas configurações como:
- Local onde está o servidor do Sonar, mesmo que seja localhost
- Todas as ferramentas externas necessárias para executar processos como:
- FxCop
- Gallio
- Configurações padrões para os arquivos de projetos, tudo que for comum pode ficar aqui para não precisar ser replicado a cada sistema.
O arquivo .\sonar-runner-2.4\conf\sonar-runner.properties
Configurando o caminho do servidor do Sonar.
#----- Default SonarQube server
sonar.host.url=http://localhost:9000
sonar.host.url=http://localhost:9000
Configurando o banco de dados, caso o H2 não esteja
comentado, copie o texto abaixo.
#----- H2
sonar.jdbc.url=jdbc:h2:tcp://localhost:9092/sonar
sonar.jdbc.url=jdbc:h2:tcp://localhost:9092/sonar
Configurando o login e senha para o banco de dados.
#----- Global database settings
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
Opcional: já deixe configurado o encoding para UTF-8 aqui,
para não precisar configurar esse item a cada projeto. Esse item é importante
para evitar erros de caracteres especiais no código fonte registrado pelo sonar
durante a inspeção no código.
#----- Default source code encoding
sonar.sourceEncoding=UTF-8
4º Passo Configurando um disparador do sonar em arquivo .bat
É necessário executar o sonar-runner.bat para iniciar todo o
processo de inspeção de um projeto. Porém esse arquivo precisa de algumas
configurações em variáveis de ambiente definidas antes de ser executado.
Vamos então criar um arquivo bat que vai configurar nosso
ambiente. E o melhor podemos configurar boa parte dos recursos direto em pastas
de rede, isso é uma grande vantagem, pois depois que está configurado o
ambiente ele vai funcionar de qualquer máquina ou processo, que tenha acesso à
pasta de rede selecionada. Podendo até ser disparado em ambientes de integração
contínua como o Microsoft TFS ou Hudson.
Vamos chamar esse arquivo de sonar.bat e definir as algumas
variáveis de ambiente apontando para as pastas que configuramos. Veja o exemplo
do arquivo abaixo:
SET JAVA_HOME=\\NOTE\Users\Erick\Desktop\Sonar\jre7
SET SONAR_RUNNER_HOME=\\NOTE\Users\Erick\Desktop\Sonar\sonar-runner-2.4
SET SONAR_RUNNER_OPTS=-Xmx512m -XX:MaxPermSize=128m
SET SONAR_RUNNER_HOME=\\NOTE\Users\Erick\Desktop\Sonar\sonar-runner-2.4
SET SONAR_RUNNER_OPTS=-Xmx512m -XX:MaxPermSize=128m
set
path=%path%;\\NOTE\Users\Erick\Desktop\Sonar\sonar-runner-2.4\bin
sonar-runner.bat -X
5º e último passo, Configurando o cliente que será inspecionado
Vamos criar um arquivo de projeto que será inspecionado
chamado “sonar-project.properties”. Esse nome é obrigatório e não deve ser
alterado. Ele contém as informações do seu projeto que será cadastrado ou
alterado no Sonar.
Criar um arquivo de texto novo com nome “sonar-project.properties”
no mesmo diretório do arquivo solução da aplicação. No exemplo abaixo vamos ver
a aplicação Sonar Snitch, que é uma ferramenta que consulta indicadores do
Sonar, vamos conhecer a fundo essa ferramenta posterioremente, Veja os dados do
arquivo abaixo:
# Required metadata
sonar.projectKey=my:SonarSnitch
sonar.projectName=Sonar Snitch
sonar.projectVersion=1.0
sonar.projectKey=my:SonarSnitch
sonar.projectName=Sonar Snitch
sonar.projectVersion=1.0
# Path to the parent
source code directory.
sonar.sources=.
sonar.language=cs
sonar.sources=.
sonar.language=cs
Depois de criar seu arquivo sonar-project.properties, vamos
copiar o arquivo sonar.bat também para o diretório do arquivo solução.
A estrutura de arquivos para sua aplicação ficará semelhante
a imagem abaixo:
Arquivos de inspeção junto do arquivo solução
Agora basta executar o arquivo sonar.bat e deixar a magia acontecer...
Iniciando a execução do console
Fim da execução do console
Ao final do processo a janela será encerrada e seu projeto
será incluído automaticamente no Sonar.
Sistema registrado no Dashboard do Sonar
Visão geral de métricas do Sistema no Sonar
Por questões de direitos autorias e tamanhos de arquivos, não vou colocar todos os downloads juntos, Mas também para facilitar nossa configuração deixei todos os arquivos de configuração dentro de um arquivo zip. Clique aqui para fazer o download. Espero que isso facilite seu aprendizado.
Obrigado pela atenção,
Erick Ferreira Maruqes da Silva
Grata pelo seu post. Me ajudou bastante!
ResponderExcluirEstou em um projeto que não usa o sonar, posso usar ele somente no meu computador ?
ResponderExcluir