Instalação SonarQube

De MSTECH wiki
Ir para: navegação, pesquisa

Baixar arquivos

Localização dos arquivos

Extraia os arquivos do SonarQube para C:/SonarQube. Extraia os arquivos do SonarScanner para C:/SonarScanner.

Configuração do projeto

Para configurarmos o nosso projeto para ser analisado pelo SonarQube precisamos adicionar um arquivo de configuração na raiz da solução (Mesmo nível do .sln).

O arquivo deverá se chamar: sonar-project.properties. Atenção, este arquivo deverá ser .properties e não .txt. Este arquivo deverá ter o seguinte conteúdo:

       # Required metadata
	sonar.projectKey=IdentificadorUnicoDoProjeto
	sonar.projectName=Nome do Meu Projeto
	sonar.projectVersion=1.0.0
	# Comma-separated paths to directories with sources(required)
	sonar.sources=. 
	# Languages
	sonar.languages=cs
	# Ignore
	sonar.exclusions=**/packages/**/*

sonar.projectKey deverá receber um identificador único para o sonar identificar o projeto. Permitido letras, números, hífen, underline, ponto e dois pontos.

sonar.projectName é o próprio nome do projeto que irá aparecer na lista de projetos do SonarQube.

sonar.projectVersion é a versão atual do projeto. Ele deve ser atualizado a cada scanner para que um histórico do projeto seja gerado.

sonar.sources deverá receber o nome da pasta que o SonarQube irá ler. Quando usado ponto após o igual (=.) será feita a leitura em todas subpastas do projeto.

sonar.languages recebe o tipo da linguagem de programação que ele analisará. Caso não coloque está configuração, será analisado todas as linguagens instaladas no sonarqube.

sonar.exclusions recebe a lista de arquivos ou pastas que não serão analisados durante a execução.

Exemplos:

 Excluir todas as pastas “vendor”, suas subpastas e arquivos:
     **/vendor/**/*
 Excluir todas as extensões javascript e css:
    **/*.js, **/*.css
 Excluir uma determinada pasta, subpasta e todos seus arquivos:
    src/packages/**/*

Mais informações:

http://docs.sonarqube.org/display/SONAR/Analysis+Parameters

Instalações SonarQube

Manualmente

Execute o CMD como administrador. Navegue até a pasta onde se encontra o executor do SonarQube Ex: C:\SonarQube\bin\windows-x86-64(32) Execute o arquivo StartSonar.bat Neste momento, o site do SonarQube ficará na porta http://localhost:9000/

Serviço do Windows

Execute o CMD como administrador. Navegue até a pasta onde se encontra o executor do SonarQube Ex: C:\SonarQube\bin\windows-x86-64(32) Para instalar a instalação execute o arquivo

InstallNTService.bat

Para iniciar o serviço, execute o arquivo

StartNTService.bat

Neste momento, o site do SonarQube ficará na porta http://localhost:9000/

Caso precise alterar alguma configuração ou desinstalar execute

StopNTService.bat
UninstallNTService.bat


Executar Análise

Execute o CMD como administrador.

Navegue até a pasta do projeto onde está o seu .sln junto com seu arquivo de configuração. EX: cd C:\Projetos\MeuProjeto\src

No mesmo CMD que navegou até a pasta do projeto, execute o Scanner

Para isso dê o caminho até o arquivo sonar-scanner.bat EX.: C:\SonarScanner\bin\sonar-scanner.bat

Também é possível configurar o sonar scanner como variável ambiente para facilitar a execução. Para isso acesse Painel de Controle → Sistema e Segurança → Sistema → Configurações avançadas do sistema → Variáveis em Ambiente… → Variáveis do sistema → adicione o caminho até pah asta bin do sonar scanner (ou windows + pause break).

Exemplo: C:\sonarqube\sonar-scanner-2.6.1\bin. Depois de configurado, abra o CMD e execute o comando sonar-scanner.

Após executar o scanner, seu projeto começará a ser analisado. O resultado de saída irá aparecer no site do sonar http://localhost:9000/


Possíveis Problemas

Erro ao executar SonarQube como serviço d windows

Quando instalado o SonarQube como um serviço do Windows, ao executar ele buscará por uma pasta temporária em:

       C:\Windows\system32\config\systemprofile\AppData\Local\Temp\

Você poderá ver isto no log de erros que ele mostra no CMD ou então no arquivo: C:/SonarQube/logs/sonar.log Esta pasta não existe e o Sonar muitas vezes mesmo executando como administrador não consegue/pode criar. Como solução, você deverá alterar a configuração adicionando uma nova pasta temp: Pare e desinstale o serviço do SonarQube. Vá até a pasta de configuração C:/SonarQube/Conf/wrapper.conf Comente a linha (#wrapper.java.additional.1=-Djava.awt.headless=true) Adicione a linha: wrapper.java.additional.1=-Djava.awt.headless=true -Djava.io.tmpdir=C:\SonarQube\temp Salve e em seguida reinstale e inicie o serviço do SonarQube.

Erro de memória ao executar o Sonar Scanner

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. Pode acontecer durante a execução do sonar scanner ou no momento que o sonarqube está processando os dados para visualizar no site.

Antes de configurar precisamos conhecer rapidamente as JVMs do sonarqube e sonar scanner. O sonarqube possui:

      1 JVM para rodar o servidor web
      1 JVM chamada compute engine que é um 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 webserver.

Configurando o SonarQube

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.

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.


Referências

http://docs.sonarqube.org/display/SONAR/Get+Started+in+Two+Minutes http://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner