Anomalie plugin Cobertura SonarQube

De EjnTricks

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]


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Study icon.png 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.


Update icon.png 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.


Upload-icon.png 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.


Viewer icon.png Voir aussi

Fix proposé: https://github.com/netceler/sonar-cobertura