Alternativas para ejecutar SonarQube

En un post anterior te compartí parte de una investigación hecha por Matías Fornara en Abstracta, donde básicamente vimos cómo hacer una prueba de concepto rápidamente usando una imagen Docker de SonarQube, y ejecutando el análisis desde SonarQube Scanner. En esta oportunidad, veremos dos alternativas para ejecutar SonarQube: desde Maven y desde un IDE.


Luego de tener nuestro servidor SonarQube en marcha y con un proyecto creado, disponemos de varias opciones para trabajar con él, entre ellas:

De estas tres opciones, veremos las últimas dos a continuación, que son las que nos faltaron de lo que ya publicamos acá.

Ejecutar el análisis desde Maven

Para comenzar con este proceso lo primero que debemos hacer es agregar el plugin de SonarQube a nuestro proyecto Maven de la siguiente manera:

<pluginManagement>
       <plugins>
         <plugin>
           <groupId>org.codehaus.mojo</groupId>
           <artifactId>sonar-maven-plugin</artifactId>
           <version>2.7.1</version>
         </plugin>
         ...
       </plugins>
 </pluginManagement>

(Esto es para Maven 2, para Maven 3 revisar acá).

En este punto ya tenemos todo lo necesario para realizar el análisis de nuestro código desde Maven, para que envíe a hacer el análisis al servidor de SonarQube que ya tenemos instalado en un contenedor Docker (esto se explicó en el post anterior).

Entonces solo resta pararse sobre el directorio de nuestro proyecto y ejecutar la maven goal con el siguiente comando

mvn sonar:sonar -Dsonar.host.url=http://ip-de-docker:puerto

El nombre del proyecto en SonarQube y la versión los toma del proyecto Maven (al inicio del archivo pom). Ver la documentación sobre los parámetros acá.

Como resultado veremos algo como esto:

(Como se puede ver en la imagen, el análisis lo hicimos sobre las etapas iniciales de un proyecto Java, donde desarrollamos un plugin de JMeter para darle soporte a WebSockets).

De esta manera habremos obtenido nuestro reporte generado en SonarQube:

Ejecutar el análisis en el IDE

Este método nos permitirá ejecutar el análisis directamente desde el IDE de nuestra preferencia. Particularmente aquí mostraremos la utilización del plugin SonarLint para IntelliJ, pero es equivalente para otros entornos de desarrollo como Eclipse o Visual Studio.

SonarLint en IntelliJ

Lo primero es descargarse el plugin SonarLint desde el gestor de plugins de IntelliJ, una vez  instalado procedemos con la configuración.

Seleccionamos “Enable binding to remote SonarQube server” y luego seleccionamos “Configure servers“.

Agregamos un servidor, donde deberemos ingresar la IP y el puerto de nuestro servidor:

Seleccionamos autenticación mediante usuario y contraseña, ingresando las credenciales correspondientes. Luego de avanzar en el wizard debemos elegir alguno de los proyectos existentes en el servidor SonarQube para enlazarlo.

En este momento ya podemos proceder a analizar el proyecto que deseamos:

Obteniendo un resultado como se muestra a continuación:

Luego de ejecutado el análisis, podemos ir a nuestro código y SonarLint nos marcará los errores o posibles correcciones a realizar tal como si fuese un error de sintaxis marcado por el propio IDE.

 

¡Qué sorpresa es ver todas las fallas reportadas por SonarQube! ¿no? Se puede aprender mucho incorporando esta herramienta en manera temprana en un proyecto. ¿Vos qué pensás?

Leave a Reply

Your email address will not be published. Required fields are marked *