Hemos visto anteriormente cómo instalar Sonar y el Java Runner. Esto nos permite realizar análisis sin necesidad de utilizar herramientas como Ant o Maven.
En este post vamos a ver cómo hacer un primer análisis de código Cobol Mainframe.
Recordemos que:
- El archivo sonar-runner.properties se dedica a la conexión a Sonar y a nuestra base de datos.
- El archivo sonar-runner.bat nos permite lanzar un análisis.
Entorno de análisis
Cuando se instala un servidor de análisis de código, es importante diferenciar bien entre los diferentes espacios según su finalidad:
- El espacio dedicado a los diferentes softwares y sus diferentes versiones: Oracle, Java, Tomcat, Sonar, etc.
- El espacio dedicado a la entrega y la instalación del código fuente que analizar.
- El espacio dedicado a la implementación de los análisis: configuración, backups, personalización, creación de informes, extracción de datos, documentación de los análisis (útil cuando se multiplican o cuando se debe volver a un análisis antiguo o cuando nuestro servidor de análisis es utilizado por diferentes operadores), etc.
Sonar nos permite especificar este espacio en el sonar-runner.bat, con la variable PROJECT_HOME. Vamos pues a buscar en este fichero la línea siguiente:
SET PROJECT_HOME =% CD%
y modificarla para especificar un subdirectorio \Projects en el cual vamos a colocar los archivos de configuración de nuestro análisis. En realidad, no localizaría este espacio bajo el Java Runner, es sólo para fines de demostración.
Modifiqué el archivo sonar-runner.bat para insertar las 3 líneas siguientes:
- Enseñar el directorio del Java Runner SONAR_RUNNER_HOME:
echo «SONAR_RUNNER_HOME = %SONAR_RUNNER_HOME%»
- Especificar el directorio de análisis PROJECT_HOME en la carpeta \Projets y enseñar esta variable:
set PROJECT_HOME=%SONAR_RUNNER_HOME%\Projects
echo «PROJECT_HOME = %PROJECT_HOME%»
Configuración de nuestro primer análisis
Con el fin de efectuar un análisis, el Java Runner se basa en el fichero sonar-project.properties que se encuentra en nuestro entorno de análisis. El objetivo es analizar algunos programas Cobol localizados en un repertorio C:\SRC\Mainframe.
Sin entrar en el detalle de los parámetros para un análisis de código mainframe, vamos a crear nuestro fichero sonar-project.properties con los atributos siguientes:
- En primer lugar, los datos obligatorios: un nombre / una llave para esta aplicación, objeto de nuestro primer análisis, así como un número de versión:
# required metadata
sonar.projectKey=CBL_1
sonar.projectName=Cobol 1st Analysis
sonar.projectVersion=1.0
- Y, por supuesto, la ubicación de los archivos que analizar:
sources=C:/SRC/Mainframe
- Último parámetro: el lenguaje de programación para esta aplicación:
#The value of the property must be the key of the language.
sonar.language=cobol
Ejecución de nuestro primer análisis
En una ventana de comandos DOS, estamos lanzando el archivo sonar-runner.bat:
- Vemos las 2 variables que designan el directorio del Java Runner y del espacio de análisis: Con el directorio del código fuente:
- Y cualquier error que se puede encontrar, como aqui una cadena incorrecta de carácteres:
- Afortunadamente, un error de sintaxis en el código Cobol no va a detener Sonar, y nuestro análisis se acaba pronto con el mensaje ‘Analysis Successful’:
Podemos ahora consultar el portal Sonar y ver los resultados de nuestro primer análisis:
Pudimos llevar a cabo este primer análisis de modo muy simple, configurando algunos parámetros requeridos en el fichero sonar-project.properties, sin necesidad de administrar ficheros xml de Maven a la sintaxis a veces larga y compleja.
Sin embargo, el método descrito aquí presenta dos inconvenientes:
- El Java Runner trabaja únicamente con un fichero sonar-project.properties. Renombre éste en el espacio de análisis y Java Runner no podrá funcionar correctamente. Hay que modificar este fichero cada vez que se efectuará un nuevo análisis diferente.
- Consultar los errores en la ventana DOS no es de lo más fácil de usar, sobre todo para análisis bastante largos y\o que encuentran muchos errores.
Vamos a ver en nuestro próximo post cómo solucionar esto, gracias a nuestro amigo Jenkins.
Esta entrada está disponible también en Lire cet article en français y Read that post in english.