Anomalie plugin Cobertura SonarQube
Suite à l'installation de la version 6.1, l'analyse des projets ne fonctionne plus avec Cobertura et le message d'erreur suivant est affichée dans la trace d'exécution.
[ERROR] Failed to execute goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.2:sonar (default-cli) on project apacheCommons: Unable to register extension org.sonar.plugins.cobertura.CoberturaSensor from plugin 'cobertura': Lorg/sonar/api/scan/filesystem/ModuleFileSystem;: org.sonar.api.scan.filesystem.ModuleFileSystem -> [Help 1]
Votre avis
Nobody voted on this yet
|
|
Etude
Le plugin Cobertura n'est plus maintenu par l'équipe Sonarqube. Or lors de la version 6.1, il semblerait que des APIs dépréciées aient été supprimées. Le plugin ne fonctionne alors plus. Mais heureusement, le plugin étant OpenSource, un contributeur a proposé à un fix sur le projet Sonar-Cobertura, voir le fork de netceler.
Au moment de rédiger l'article, le fix n'est pas encore intégré et il est nécessaire de le compiler manuellement à l'aide de Maven. Les paragraphes suivants présentent la mise en place de cette nouvelle version.
Compilation
Il faut dans un premier temps télécharger les codes sources, ou de récupérer les sources à l'aide de commandes Git. Une fois disponible, il suffit de lancer le packaging à l'aide la commande Maven suivante.
#mvn clean package
L'exécution doit présenter les messages de succès suivants.
Tests run: 16, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] --- sonar-packaging-maven-plugin:1.16:sonar-plugin (default-sonar-plugin) @ sonar-cobertura-plugin --- [INFO] ------------------------------------------------------- [INFO] Plugin definition in update center [INFO] Key: cobertura [INFO] Name: Cobertura [INFO] Description: Get code coverage with <a href="http://cobertura.sourceforge.net/">Cobertura</a>. [INFO] Version: 1.8-SNAPSHOT [INFO] Entry-point Class: org.sonar.plugins.cobertura.CoberturaPlugin [INFO] Required Plugins: java:4.2 [INFO] Use Child-first ClassLoader: false [INFO] Base Plugin: [INFO] Homepage URL: http://redirect.sonarsource.com/plugins/cobertura.html [INFO] Minimal SonarQube Version: 6.1 [INFO] Licensing: GNU LGPL 3 [INFO] Organization: SonarSource [INFO] Organization URL: http://www.sonarsource.com [INFO] Terms and Conditions: [INFO] Issue Tracker URL: https://github.com/SonarQubeCommunity/sonar-cobertura/issues [INFO] Build date: 2016-11-03T15:19:37+0100 [INFO] Sources URL: https://github.com/SonarQubeCommunity/sonar-cobertura [INFO] Developers: Eric Hartmann,Julien Henry,Evgeny Mandrikov,Olivier Gaudin,Simon Brandhof [INFO] Dependencies: META-INF/lib/commons-lang-2.6.jar META-INF/lib/commons-io-2.4.jar META-INF/lib/guava-19.0.jar [INFO] ------------------------------------------------------- [INFO] Building jar: C:\Temp\sonar\sonar-cobertura-master\target\sonar-cobertura-plugin.jar [INFO] already added, skipping [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 9.260 s [INFO] Finished at: 2016-11-03T15:19:38+01:00 [INFO] Final Memory: 27M/992M [INFO] ------------------------------------------------------------------------
Le paquet, fichier sonar-cobertura-plugin.jar
est alors généré dans le sous répertoire target
.
Mise à jour
La mise à jour du plugin doit être réalisée comme si une nouvelle version était identifiée par SonarQube. Il faut dans un premier temps verser le fichier sur le serveur, dans le répertoire /tmp
par exemple.
Dans un premier temps, le service est arrêté.
#sudo service sonarqube stop
Dans le cadre de cette installation, l'instance est disponible à l'emplacement /var/opt/sonarqube/installed
et le répertoire des plugins a été externalisé sous /var/opt/sonarqube/common/extensions
. Il suffit de déposer le paquet dans le sous répertoire downloads
pour simuler son téléchargement.
#sudo mv /tmp/sonar-cobertura-plugin.jar /var/opt/sonarqube/common/extensions/downloads/sonar-cobertura-plugin-1.8.jar #sudo chown sonar:sonar /var/opt/sonarqube/common/extensions/downloads/sonar-cobertura-plugin-1.8.jar
A noter la modification du nom du fichier pour inclure le numéro de version, comme cela est le cas pour les plugins déjà installés.
#sudo ll /var/opt/sonarqube/common/extensions/plugins total 37176 drwx------ 2 sonar sonar 4096 nov. 3 02:20 ./ drwx------ 5 sonar sonar 4096 sept. 15 2015 ../ -rw------- 1 sonar sonar 105 juin 2 2014 README.txt -rw------- 1 sonar sonar 5459683 nov. 10 2015 sonar-checkstyle-plugin-2.4.jar -rw-r--r-- 1 sonar sonar 2488748 août 2 23:08 sonar-cobertura-plugin-1.7.jar -rw-r--r-- 1 sonar sonar 9457406 juil. 13 20:54 sonar-findbugs-plugin-3.4.3.jar -rw-r--r-- 1 sonar sonar 5895198 nov. 3 02:18 sonar-java-plugin-4.2.1.6971.jar -rw-r--r-- 1 sonar sonar 299886 nov. 3 02:18 sonar-ldap-plugin-2.1.0.507.jar -rw------- 1 sonar sonar 14188 mai 6 2015 sonar-motion-chart-plugin-1.7.jar -rw-r--r-- 1 sonar sonar 4596956 juil. 13 20:53 sonar-pmd-plugin-2.6.jar -rw-r--r-- 1 sonar sonar 3233126 avril 14 2016 sonar-scm-git-plugin-1.2.jar -rw-r--r-- 1 sonar sonar 6564536 avril 14 2016 sonar-scm-svn-plugin-1.3.jar -rw------- 1 sonar sonar 7364 mai 6 2015 sonar-timeline-plugin-1.5.jar -rw------- 1 sonar sonar 18839 mai 6 2015 sonar-useless-code-tracker-plugin-0.6.jar
Puis il suffit de relancer le serveur.
#sudo service sonarqube start
Dans la trace d'exécution, il est possible de constater l'activation de la nouvelle version.
2016.11.03 15:28:19 INFO web[][o.s.s.p.ServerFileSystemImpl] SonarQube home: /var/opt/sonarqube/6.1 2016.11.03 15:28:20 INFO web[][o.s.s.p.ServerPluginRepository] Plugin Cobertura [cobertura] updated to version 1.8-SNAPSHOT 2016.11.03 15:28:20 INFO web[][o.s.s.p.ServerPluginRepository] Deploy plugin Checkstyle / 2.4 / abe1e23436ed7b227a3a325cbf12e204a7c90fc9 2016.11.03 15:28:20 INFO web[][o.s.s.p.ServerPluginRepository] Deploy plugin Cobertura / 1.8-SNAPSHOT / 0 2016.11.03 15:28:20 INFO web[][o.s.s.p.ServerPluginRepository] Deploy plugin Findbugs / 3.4.3 / 2016.11.03 15:28:20 INFO web[][o.s.s.p.ServerPluginRepository] Deploy plugin Git / 1.2 / ed0814f835a7e4b5169b6e4b6312a95dc3f71ae5 2016.11.03 15:28:20 INFO web[][o.s.s.p.ServerPluginRepository] Deploy plugin Java / 4.2.1.6971 / 539d2c7f907a70b5d53a37a2d2fc9df1eab6662d 2016.11.03 15:28:20 INFO web[][o.s.s.p.ServerPluginRepository] Deploy plugin LDAP / 2.1.0.507 / 60b4a72c2042d0cad5233be63d0456815c9691e2 2016.11.03 15:28:20 INFO web[][o.s.s.p.ServerPluginRepository] Deploy plugin Motion Chart / 1.7 / e9c4a5c95c75564b3c3b5a887b63ef50fc59a156 2016.11.03 15:28:20 INFO web[][o.s.s.p.ServerPluginRepository] Deploy plugin PMD / 2.6 / f419f834b4bea51f9b6da33517b7f6186db5c066 2016.11.03 15:28:20 INFO web[][o.s.s.p.ServerPluginRepository] Deploy plugin SVN / 1.3 / 73d9c8a5764e95388328bbaeb911f16fc925a448 2016.11.03 15:28:20 INFO web[][o.s.s.p.ServerPluginRepository] Deploy plugin Timeline / 1.5 / a9cae1328fd455a128b5d7d603381f47398c6e2a 2016.11.03 15:28:20 INFO web[][o.s.s.p.ServerPluginRepository] Deploy plugin Useless Code Tracker / 0.6 / 6283
Une fois démarré, il est possible de constater la mise à jour au niveau de l'interface d'administration des plugins de SonarQube.
Voir aussi
Fix proposé: https://github.com/netceler/sonar-cobertura