Fala galera, este será meu primeiro post no fórum, e irei abordar o tema sobre como implementar o SonarQube 7.7 no Android Studio e fazer o Scan de toda sua aplicação localmente.
Pelo baixo conteúdo disponível em português eu decidi abordar este tema, pois acredito que não serei o único a ficar com os cabelos brancos, quando alguém te pede desde a implementação até a extração de report para controle de bugs e qualidade de software, sendo a primeira vez que ouvimos falar nessa ferramenta.
Iremos utilizar para este cenário a versão 7.7 Communit Edition do SonarQube.
Instalação
Após realizar o download, descompacte o arquivo onde preferir, feito isso você notará que ele contém essa estrutura:
Feito isso, será necessário iniciar o serviço através do terminal.
Para isso, abra o Terminal do MacOs, navegue até o local onde você descompactou o SonarQube, como pode ver na imagem:
Iniciando o servidor SonarQube
Após localizar e acessar a pasta onde contém o executável sonar.sh, execute o comando : ./sonar.sh start
Logo aparecerá a mensagem de que o servidor foi iniciado.
Após ter inicializado o servidor, você deverá validar acessando o servidor pelo localhost.
http://localhost:9000/about
Como estamos localmente a senha e o password são: admin
Crie um novo Projeto, por definição escolhemos o nome relacionado a aplicação que iremos realizar o Scan.
Existe a opção de logar passando como parâmetro de login, o Key de acesso gerado ao criar seu novo projeto, mas nesse caso iremos prosseguir de outra maneira por ser local.
Preparando o Ambiente no Android Studio
Nessa etapa, acredito que todos tenham instalado o Android Studio em suas máquinas, caso não tenha pode realizar o download através do link :
Não irei abortar com mais profundidade sobre como instalar o Android Studio, caso necessite existe muito conteúdo disponível na internet.
Implementando o plugin do SonarQube no Gradle.
Dentro do seu projeto, existem dois build.gradle, um para o módulo e outro para o projeto.
Você deve importar a dependência a seguir, dentro do build.gradle do Projeto ( build.gradle (Project)).
classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:3.0"
Lembrando que o import deve ser realizado dentro do dependencies { }
Feito isso, o próximo passo é abrir o build.gradle (Module),
e adicionar o plugin junto com os outros plugins que seu projeto estiver utilizando.
apply plugin: 'org.sonarqube'
Lembrando que os plugins não necessariamente estarão dentro de um bloco
Próximo passo é colocar o implementar o bloco de código, para comunicação do Android para o Gradle, passando os parâmetros do seu projeto, irei utilizar como exemplo um projeto pessoal.
sonarqube {
properties {
property "sonar.projectName", "ProjectName"
property "sonar.projectKey", ":mobileSalesForce"
property "sonar.host.url", "http://localhost:9000"
property "sonar.language", "java"
property "sonar.sources", "src/main/"
property "sonar.login", "admin"
property "sonar.password", "admin"
}
}
Descrição :
property "sonar.projectName", "ProjectName" = Nome do seu Projeto Android.
property "sonar.projectKey", ":mobileSalesForce" = Nome dado na hora da criação da sua pasta dentro do SonarQube, Exemplo: criei a pasta no Sonar com noome MSF_VENDEDOR, irei por no Key, o mesmo nome da pasta criada.
property "sonar.language" = Linguagem utilizada no desenvolvimento do software.
property "sonar.sources" = Local onde está a localizado seu projeto, geralmente o Android Studio mantém este padrão caso não mude pode utilizá-lo.
Feito Isso você deverá pelo terminal do Android, ir até a pasta do seu projeto onde está localizado os componentes do projeto tais como, gradlew.bat, build.gradle...
Na pasta do projeto, você deverá executar o seguinte comando:
sudo ./gradlew sonarqube
Feito isso irá buildar seu projeto, e após alguns minutos ele terá feito o Scan total do seu projeto, e lhe apresentando os dados na pasta onde vc criou dentro do SOnarQube no Localhost:9000.
No exemplo abaixo, eu utilizei um projeto pessoal contendo uma variedade de classes obsoletas, e erros para execução do SonarQube.
Após o Scan completo do Projeto irá ter esse resultado:
Para verificar o resultado, volte para a página localhost:9000, caso não tenha atualizado sozinho, atualize a página.
SonarQube é uma ferramenta muito útil, pois ela consegue identificar as classes que contém os Bugs, as vulnerabilidades, e a quantidade de códigos duplicados, basta você procurar nos resultados do Scan.
Como podemos ver abaixo:
Temos também a opção de gerar o Report em .csv para análise, mas esse processo consiste em inserir um plugin na raiz do SonarQube, caso alguém necessite pode me contactar.
Existem outras formas para se realizar o scanner do projeto, tais como, com chave de acesso, caso tenha necessidade de implementar o SonarQube no servidor.
E também tem outras formas de executar esse processo local, mas resolvi apresentar a consideravelmente mais fácil.
Espero Ter ajudado :)
Top comments (2)
ótimo passo a passo cara, ajudou muito!!!
Obrigado naliceee !