DEV Community

Jonas Zacari
Jonas Zacari

Posted on

Implementação do SonarQube 7.7 No Android Studio - MacOs

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.

Download SonarQube

Alt Text

Instalação

Após realizar o download, descompacte o arquivo onde preferir, feito isso você notará que ele contém essa estrutura:
Alt Text

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:
Alt Text

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.
Alt Text

Após ter inicializado o servidor, você deverá validar acessando o servidor pelo localhost.
http://localhost:9000/about

Alt Text

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 :

Download Android Studio

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 { }

Alt Text

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'

Alt Text

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.

Alt Text

Após o Scan completo do Projeto irá ter esse resultado:

Alt Text

Para verificar o resultado, volte para a página localhost:9000, caso não tenha atualizado sozinho, atualize a página.

Alt Text

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.

Alt Text

Como podemos ver abaixo:

Alt Text

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.

Alt Text

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 :)

Latest comments (2)

Collapse
 
naliceee profile image
naliceee

ótimo passo a passo cara, ajudou muito!!!

Collapse
 
jonaszaca profile image
Jonas Zacari

Obrigado naliceee !