|
|
Linha 1: |
Linha 1: |
| | | |
− | === 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:
| |
− |
| |
− | <nowiki># 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/**/*</nowiki>
| |
− |
| |
− | '''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
| |