El último post sobre SonarQube trataba de un upgrade de versión. Lamentablemente, me retrasé un poco cuando lo hice, por lo que ahora una nueva versión de SonarQube está disponible.
Esta es una versión 4.0 (o sea mayor), que he instalado este fin de semana. Y como me di cuenta de algunos errores, esta es una oportunidad para actualizar el post SonarQube upgrade y documentar estos errores y su resolución.
No voy a detallar todos los pasos de actualización como en el artículo anterior, sino simplemente precisar el porqué de estos mensajes y como arreglarlos.
SonarQube 4.0
Pasos preliminares
Estos pasos son los siguientes:
- En primer lugar, comprobar que SonarQube no está activado. Si es el caso, detener el servicio Windows de Sonar.
- Hacer un backup de la actual instalación de SonarQube. También hemos visto cómo realizar un backup de la base de datos Oracle.
- Eliminar el servicio de Sonar existente. Esto lo hacemos con el archivo de desinstalación ‘UninstallNTService.bat’ que se encuentra en la carpeta correspondiente de nuestro sistema operativo en el directorio ‘..\bin’ de la versión actual de SonarQube.
Nota: Intenté hacerlo con cualquier archivo ‘UninstallNTService.bat’ de otra versión, o de 32 o 64 bits, y funciona: se elimina el servicio Sonar.
Luego voy a descargar la versión 4.0 SonarQube desde la pagina de download de SonarSource.
Instalación SonarQube 4.0
Entonces, voy a proceder como siempre:
- Descomprimir la versión 4.0 SonarQube en su propio directorio.
- Copiar los archivos .jar de los plugins instalados (en la versión anterior) a la nueva versión en el directorio ‘..\sonar-4.0\extensions\plugins’.
- Copiar el driver de la base de datos de Oracle ‘ojdbc6.jar’ a su nuevo directorio ‘..\sonar-4,0\extensions\jdbc-driver\oracle’ (sabes ya que utilizo una base de datos Oracle).
- Copar los archivos ‘sonar.properties’ (de parametros de entorno) y ‘wrapper.conf’ en la nueva carpeta ‘..\sonar-4.0\conf’. Nota: si estás siguiendo este post paso a paso, no hagas eso porque este paso es un error (ver màs abajo).
- Instalación del nuevo servicio Sonar en versión 4.0 con el fichero ‘InstallNTService.bat’ en la carpeta ‘sonar-4,0\bin\’ y el sub-directorio correspondiente de tu versión de OS.
Una vez realizadas estas operaciones, se puede iniciar el servicio Sonar … excepto que esto nos devuelve el siguiente mensaje de error:
Y en el fichero ‘sonar.log’ encontramos este error: WrapperSimpleApp: Encountered an error running main: java.lang.IllegalStateException: Do not copy-paste the configuration files (conf directory) from the old version. Update the content of the new files instead.
He leido las Releases Notes de SonarSource, pero no he prestado atención a la pagina de upgrade que ha sido modificada, y que indica que ya no se debe copiar los archivos de configuración como antes, pero actualizar directamente el fichero ‘sonar.properties’. Así que el paso 4 anterior era incorrecto.
De hecho, no tuve que editar el archivo ‘wrapper.conf’ sino simplemente actualizar el fichero ‘sonar.properties’ con la dirección de mi base de datos Oracle. Cuidado al editar este archivo, a no cometer errores o introducir caracteres no válidos.
Una vez que nuestra configuración está realizada correctamente, podemos empezar el procedimiento de actualización SonarQube desde la pagina de ‘setup’, es decir ‘http://localhost:9000/setup’.
SonarQube necesita realizar una actualización de base de datos:
Activamos el bóton ‘Upgrade’ para lanzar el update. Pero acabo con el siguiente mensaje de error, que me hace pensar que tengo un problema con una versión antigua del plugin ‘Sqale’.
Update del plugin Sqale
Voy a buscar la pagina para este plugin en SonarSource:
Efectivamente, hay una nueva versión de Sqale específica a la versión 4.0 de SonarQube. Pues voy a:
- Descargar el plugin en el directorio ‘..\sonar-4.0\extensions\plugins’.
- Stop / Start el servicio Windows Sonar.
- De nuevo arrancar el setup de SonarQube: ‘http://localhost:9000/setup’
!Yes! La actualización se ha realizado correctamente.
Update de otros plugins
El ejemplo anterior nos ha enseñado que a veces es necesario instalar una nueva versión de un plugin antes de instalar una nueva versión de SonarQube. Por eso se recomienda realizar los cambios de versión a través del Update Center, como lo hemos visto en el post SonarQube upgrade,
Voy a seguir el mismo procedimiento:
- Connectarme como admin Sonar
- En el Update Center, activar el upgrade de los plugins que necesitan una actualización:
SonarQube lista los plugins que elegimos para un update.
Podemos ver que la actualización de Java 1.4 a Java 1.5 resulta en un update de muchos plugins (findBugs, pmd, etc.)
Una vez hemos activado la actualización de todos los plugins que lo necesitan, se puede realizar un Re-start del servicio Windows de Sonar y volver a SonarQube.
Si vamos de nuevo en el Update Center, podemos ver que nuestra instalación de SonarQube está ahora en versión 4.0 con todos los plugins actualizados.
Et voilá! Nos queda ahora descubrir qué hay de nuevo en esta versión 4.0 de SonarQube y probar estos nuevos plugins. Hasta luego para un nuevo post.
Esta entrada está disponible también en Lire cet article en français y Read that post in english.