Instalar SonarQube – Análisis con SonarQube Runner

SonarRunner1Hemos instalado anteriormente el portal SonarQube con Tomcat, y el SonarQube Runner, que nos permitirá realizar nuestro primer análisis.

En la carpeta de instalación de SonarQube Runner, tenemos tres directorios:

  • Un directorio ‘..\lib’ con un .jar necesario para la ejecución del SonarQube-Runner.
  • Un directorio ‘..\conf’ con el archivo  sonar runner.properties’ dedicado a configurar la conexión con SonarQube y nuestra base de datos.
  • Un directorio ‘..\bin’ dónde está el archivo ‘sonar runner.bat` que nos permite ejecutar un análisis.

Antes de configurarlo este fichero, hagamos una pausa para reflexionar sobre la organización de nuestro entorno de análisis.

Entorno de análisis

Cuando se instala un servidor de análisis de código, es importante diferenciar entre los diferentes espacios según su finalidad:

  • El espacio dedicado a los diferentes softwares y diferentes versiones de Oracle, Java, Tomcat, SonarQube, etc.
  • El espacio dedicado a la entrega e instalación del código fuente a analizar.
  • El espacio dedicado al análisis de la implementación: configuración, backups, personalización, presentación de informes, extracción de datos, el análisis y su documentación (muy útil cuando se multiplican ellos o tu debes volver a hacer un análisis muy antiguo o el servidor de análisis es utilizado por diferentes operadores), etc.

SonarQube nos permite especificar este espacio en el archivo ‘sonar runner.bat’ con la variable ‘HOME PROJECT’.

Entonces buscamos en este archivo la siguiente línea:

set PROJECT_HOME= %CD%

y vamos a cambiarla  para indicar un sub-directorio ‘Projects’ en el que vamos a colocar los archivos de configuración de nuestros análisis. En realidad, yo no pondría este espacio en el directorio del SonarQube Runner, es sólo para nuestra demostración.

He modificado el archivo ‘sonar runner.bat’ para insertar las tres líneas siguientes:

  •  Enseñar el directorio ‘SONAR RUNNER HOME’ del SonarQube Runner :

echo ”SONAR_RUNNER_HOME = %SONAR_RUNNER_HOME%”

  • Definir el directorio de análisis ‘PROJECT HOME’ en una carpeta ‘\Projects’ que vamos a crear bajo la carpeta anterior, y escribirlo en la pantalla:

set PROJECT_HOME=%SONAR_RUNNER_HOME%\Projects
echo ”PROJECT_HOME = %PROJECT_HOME%”

Configuración de nuestro análisis inicial

Para realizar un análisis, el SonarQube Runner se basa en el archivo ‘sonar-project.properties’ localizado en el entorno de análisis: el directorio ‘Projects’ que acabamos de crear. Nuestro objetivo es analizar una aplicación Java ‘Extranet’ que se encuentra en ‘C:\SRC\Demo\J2EE\Source\Extranet\’.
Si no tienes código fuente (o quieres analizar otro tipo de código), puedes recuperar un ejemplo de código y su configuración de análisis en esta página: http://docs.codehaus.org/display/SONAR/Sonar+Project+Examples.

Sin entrar en los detalles de los parámetros para un análisis de código Java, vamos a crear el fichero ‘sonar-project.properties’ con los siguientes attributos:

  • En primer lugar, los datos necesarios: nombre / clave de esta aplicación, y un número de versión:

# required metadata
sonar.projectKey=EXT
sonar.projectName=Extranet
sonar.projectVersion=1.0

  • Por supuesto, la ubicación de los archivos que se analizarán:

sonar.sources=C:/SRC/Demo/J2EE/Source/Extranet/WEB-INF/src/

  • Por último: el lenguaje de programación que decidirá del parser SonarQube para analizar esta aplicación:

#The value of the property must be the key of the language.
sonar.language=java

Paquetes y clases Java

Un punto a aclarar si no conoces bien el lenguaje Java. Las clases Java se organizan en paquetes que corresponden a los directorios donde se encuentran los archivos .java para estas clases. La identificación de este paquete se muestra en la primera línea del archivo java.

Déclaration de packageEn este ejemplo, el fichero ‘J2EEConnection.java’ se encuentra en el directorio ‘C:\SRC\Demo\J2EE\Source\Extranet\WEB-INF\src\com\extranet\common’. El directorio fuente – también llamado ‘root’ ou directorio raiz – que indicar en nuestro archivo de configuración de análisis, es inmediatamente por encima de todos los directorios / paquetes.

Organisation des packages

Si tienes alguna duda, abre un archivo de la aplicación Java para ver la primera línea. luego, busca el directorio ‘padre’ del paquete: es lo que se debe especificar en el archivo de configuración de análisis SonarQube Runner.

Normalmente, se encuentra en un directorio ‘src’, pero a veces no se respeta esta norma, y los paquetes se organizan en diferentes carpetas. En este caso, se deben especificar todos en el ‘sonar project.properties’, separados por una coma, como en el siguiente ejemplo:

sources=../src1/,../src2/

Ejecutar nuestro primer análisis

En una ventana DOS, ejecutamos el archivo ‘sonar-runner.bat’.
Vemos las dos variables que apuntan al directorio del SonarQube Runner y nuestro espacio ‘Projects’ con el archivo de configuración de nuestro análisis:

Exécution Sonar Runner

Además, podemos ver el nombre del proyecto y el directorio indicado en el parámetro ‘sonar.sources’.

SonarRunnerExec2

Cuando puedes ver en el log de análisis, el mensaje ‘ANALYSIS SUCCESFULL’:

SonarRunnerExecFin

puedes entrar en el portal SonarQube y ver los resultados de nuestro primer análisis

1ère analyse avec Sonar RunnerVemos el nombre del proyecto y el número de version como definido en el ‘sonar-project.properties’.

Hemos visto los parámetros más simples que se necesitan para llevar a cabo un análisis. Hay muchos otros que encontrarás en esta página Analyzing with SonarQube Runner.

Hemos completado nuestro análisis inicial de la forma más sencilla posible, mediante unos parámetros necesarios en el archivo ‘sonar-project.properties’, sin la necesidad de gestionar archivos xml de Maven y su sintaxis, a veces compleja.

Sin embargo, proceder así tiene un inconveniente: comprobar errores en una ventana DOS no es muy fácil, especialmente para largos análisis o encontrando muchos errores.

Por suerte, veremos cómo solucionarlo, gracias a nuestro amigo Jenkins.

Artículo siguiente: cómo instalar y configurar Jenkins. A bientôt.

 

Esta entrada está también disponible en Lire cet article en français y Read that post in english.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *