Le dernier article sur SonarQube traitait d’un upgrade de version. J’ai malheureusement tardé un peu entre le moment oú j’ai effectué cet upgrade et la réalisation de l’article, si bien qu’une nouvelle version de SonarQube est depuis disponible.
Il s’agit d’une version 4.0 (donc majeure), que j’ai installée ce week-end. Et comme j’ai rencontré quelques erreurs, ce sera l’occasion de mettre à jour le post SonarQube Upgrade, de documenter ces messages d’erreurs et leur résolution.
Je ne vais pas détailler toutes les étapes d’upgrade comme dans l’article précédent, mais préciser simplement les erreurs rencontrées et leur solutions.
SonarQube 4.0
Etapes préalables
Ces étapes sont les suivantes :
- Tout d’abord, vérifier que SonarQube n’est pas activé. Si c’est le cas, arrêter le service Sonar.
- Faire un backup de l’installation SonarQube actuelle. Nous avons vu également comment faire un backup de la base de données Oracle.
- Supprimer le service Sonar existant. Nous effectuons cette désinstallation avec le fichier ‘UninstallNTService.bat’ qui se trouve dans le dossier correspondant à notre système d’exploitation, sous le répertoire ‘..bin’ de la version actuelle de SonarQube.
Remarque : je me suis amusé à essayer n’importe quel fichier ‘UninstallNTService.bat’ depuis une autre version, en 32 ou 64 bits et cela fonctionne : le service Sonar est bien supprimé.
Je vais ensuite downloader la version 4.0 de SonarQube, depuis page de download de SonarSource.
Installation SonarQube 4.0
Je procède ensuite comme d’habitude :
- Unzip de la version SonarQube 4.0 dans son propre répertoire.
- Copie des fichiers .jar des plugins installés (dans la version précédente) vers le répertoire correspondant de la nouvelle version, soit ‘..sonar-4.0extensionsplugins’.
- Copie du driver de base de données Oracle ‘ojdbc6.jar’ vers son nouveau répertoire ‘..sonar-4,0extensionsjdbc-driveroracle’ (puisque j’utilise une base de données Oracle).
- Copie des fichiers ‘sonar.properties’ (de paramètres d’environnement) et ‘wrapper.conf’ vers le nouveau répertoire ‘..sonar-4.0conf’. Remarque : si vous suivez ce post pas à pas, n’effectuez pas cette étape car elle est erronée (voir ci-dessous).
- Installation du nouveau service Sonar en version 4.0 avec le fichier ‘InstallNTService.bat’ qui se trouve dans le répertoire ‘sonar-4,0bin’ et le sous-répertoire correspondant à votre version d’OS.
Une fois ces opérations réalisées, nous pouvons démarrer le service Sonar … sauf que celui-ci renvoie le message d’erreur suivant :
Et le fichier ‘sonar.log’ affiche cette erreur : 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.
Je suis bien allé lire la page des Releases Notes de SonarSource, mais je n’ai pas fait attention à la page d’upgrade qui a été modifiée, et qui indique qu’il ne faut plus copier les fichiers de configuration comme auparavant, mais mettre à jour ceux-ci directement. Donc l’étape 4 précédente était incorrecte.
En fait, je n’ai pas eu à modifier le fichier ‘wrapper.conf’ mais simplement à actualiser le fichier ‘sonar.properties’ avec l’adresse de ma base de données Oracle. Faites attention lorsque vous modifiez ce fichier à ne pas commettre d’erreur ou d’introduire des caractères incorrects.
Une fois notre configuration effectuée, nous pouvons lancer la procédure d’upgrade de SonarQube depuis la page ‘setup’, c’est-‘a-dire ‘http://localhost:9000/setup’.
SonarQube demande à réaliser un upgrade de base de données :
Nous activons le bouton ‘Upgrade’ afin de lancer cette mise-à-jour. Mais je finis par rencontrer le message d’erreur suivant, dont je soupçonne qu’il s’agisse d’un problème avec une version obsolète du plugin ‘Sqale’.
Mise à jour du plugin Sqale
Je vais donc aller sur la page relative à ce plugin sur le site SonarSource :
Il y a effectivement une nouvelle version du plugin Sqale spécifique à la version 4.0 de SonarQube. Je vais donc :
- Downloader ce plugin dans le répertoire ‘..sonar-4.0extensionsplugins’.
- Stop / Start le service Windows Sonar.
- A nouveau lancer le setup de SonarQube : ‘http://localhost:9000/setup’
Yes ! La mise à jour s’est effectuée correctement.
Mise à jour des autres plugins
L’exemple précédent nous a montré qu’il était parfois nécessaire d’installer une nouvelle version d’un plugin avant d’installer une nouvelle version de SonarQube. Raison pour laquelle il est recommandé d’effectuer ces mises-à-jour à travers l’Update Center, comme nous l’avions vu dans le post SonarQube Upgrade,
Je vais donc suivre cette même procédure :
- Me connecter en tant qu’admin Sonar
- Aller dans l’Update Center et activer l’upgrade des plugins qui nécessitent une mise à jour :
SonarQube liste les plugins dont la version sera actualisée.
A noter que l’upgrade de Java 1.4 à Java 1.5 se traduit par une mise-à-jour de nombreux plugins (findbugs, pmd, etc).
Une fois que nous avons activé tous les plugins à updater, nous pouvons effectuer un Re-start du service Windows Sonar et revenir dans SonarQube.
Si vous vous connectez à nouveau dans l’Update Center, vous pourrez constater que votre installation SonarQube est maintenant à jour, en version 4.0 et avec tous ses plugins dans leur version la plus récente.
Et voilà ! Il ne nous reste plus maintenant qu’à découvrir les nouveautés de cette version 4.0 de SonarQube, et à essayer ces nouveaux plugins. A bientôt pour un nouveau post.
Cette publication est également disponible en Leer este articulo en castellano : liste des langues séparées par une virgule, Read that post in english : dernière langue.