SonarQube. Instalación básica y primeros análisis

SonarqubeSonarQube es una herramienta que permite analizar el código fuente. Entre otras cosas, nos informa sobre código duplicado, estándares de codificación, pruebas unitarias, cobertura de código, complejidad ciclomática y más cosas.

Sonar nació para ser utilizada en desarrollos Java, pero actualmente soporta más de 20 lenguajes incluyendo  Javascript, PHP, Cobol, PL, C#, … Además, puede extenderse a través de plugins, tanto para soportar más lenguajes como para soportar nuevos lenguajes.

Se integra con MavenAnt y herramientas de integración continua como Atlassian Bamboo y Jenkins.

Si no estás seguro de si esta herramienta es para ti, o si antes de hacer esta instalación básica, quieres verlo en acción, accede a Nemo, una demo pública de SonarQube. Las medidas que podrás ver están tomadas de proyectos reales de código abierto como Apache, JBoss, Sourceforge, Codehaus, OW2, GoogleCode, SpringSource, OPS4J y otros.

SonarQube Nemo

 

Instalar sonar es relativamente sencillo. Sigue los siguientes pasos:

1.- Descarga y descomprime SonarQube (por ejemplo en “C:\sonarqube” o “/etc/sonarqube”)

2.- Arranca el servidor SonarQube:

# On Windows, ejecuta:
C:\sonarqube\bin\windows-x86-xx\StartSonar.bat
 
# En Linux y Mac, ejecuta:
/etc/sonarqube/bin/[OS]/sonar.sh console

3.- Descarga y descomprime SonarQube Runner (por ejemplo en “C:\sonar-runner” o “/etc/sonar-runner”)

4.- Descarga y  descomprime algunos proyectos de ejemplo (por ejemplo en “C:\sonar-examples” o “/etc/sonar-examples”

5.- Analiza un proyecto:

# En Windows:
cd C:\sonar-examples\projects\languages\java\sonar-runner\java-sonar-runner-simple
C:\sonar-runner\bin\sonar-runner.bat
 
# En Linux y Mac:
cd /etc/sonar-examples/projects/languages/java/sonar-runner/java-sonar-runner-simple
/etc/sonar-runner/bin/sonar-runner

Ejecutando SonarQube

6.- Navega por los resultados a través de la URL: http://localhost:9000 (las credenciales por defecto de System administrator son admin/admin).

Sonar Home Sonar Metrics

Una vez que tengamos instalado y funcionando la herramienta, tendremos que habituarnos a ella, y a su funcionamiento.

Por ejemplo, en relación a la complejidad ciclomática, SonarQube considera que un método tiene por defecto una complejidad de 1 (excepto los getters y setters que no se consideran para este cálculo), y suma +1 cada vez que aparece alguna de las siguientes instrucciones (if, for, while, case, catch, throw, return, &&, ||, ?), no haciendo distinción sobre las mismas. Esta es la forma en que la calcula esta herramienta, por lo que los cálculos serán diferentes de los que nos dé otra herramienta.

SonarQube. Instalación básica y primeros análisis

12 comentarios

Deja un comentario