Contrôler la qualité de ses projets avec Sonar


précédentsommairesuivant

VIII. Plugins

VIII-A. Intérêt des plugins

Il existe aujourd'hui près d'une quarantaine de plugins pour Sonar. La liste de ces plugins est disponible ici.

Actuellement, les plugins sont divisés en plusieurs catégories, selon leur utilité première.

  • Métriques additionnelles : permet de calculer de nouvelles métriques pour Sonar. Il s'agit en général de permettre le support d'outils externes (JaCoCo, JIRA, JMeter, Mantis, SonarJ, etc.).
  • Nouveaux langages : par défaut, Sonar ne gère que le langage Java, mais grâce à l'ajout de plugins, de nombreux autres langages peuvent être gérés (C, C#, Groovy, JavaScript, PHP, Visual Basic 6, etc.). Attention, certains d'entre eux sont des plugins commerciaux.
  • Visualisation : plugins permettant un affichage différent des métriques calculées par Sonar.
  • Gouvernance : offre le support de nouvelles méthodologies d'analyse, comme par exemple SQALE.
  • Intégration : permet une meilleure intégration de l'outil Sonar dans l'usine logicielle, par exemple en offrant un support avec Hudson ou Bamboo (serveurs d'intégration continue). Certains de ces plugins sont destinés à être installés en dehors de Sonar.
  • IDE : plugins destinés aux IDE (outil de développement comme Eclipse ou IntelliJ IDEA) offrant une intégration plus poussée avec Sonar.

Ci-dessous, quelques captures d'écran de l'utilisation de ces plugins :

Image non disponible
Le plugin 'SQALE' affiche le coût de remédiation de la dette technique.
Image non disponible
Le plugin 'Timeline' affiche l'historique des métriques en relation avec les événements arrivés sur le projet, à la façon Google.
Image non disponible
Le plugin 'Motion chart' affiche en animation l'évolution des métriques du projet au cours du temps.
Image non disponible
Le plugin 'Build Stability' indique l'état de stabilité des builds de l'intégration continue.

On pourra également s'intéresser au plugin SCM Activity, qui va récupérer un certain nombre d'informations depuis le gestionnaire de sources (CVS, SVN per exemple) pour s'en servir dans Sonar. Il sera dès lors possible d'améliorer le niveau de qualité de l'inspection continue que l'on réalise sur ses projets, comme cela est expliqué ici.

VIII-B. Installation

En règle générale, le plugin se présente sous la forme d'un fichier JAR qu'il faut télécharger ici. Ensuite, il suffit de déposer ce fichier dans le répertoire extensions/plugins/ du serveur Sonar (que l'on aura au préalable arrêté), puis de redémarrer le serveur. Toutefois, il se peut que cette règle diffère légèrement d'un plugin à un autre (en particulier les plugins d'intégration).

Avant l'installation d'un plugin, il est préférable de consulter sa compatibilité avec les versions de Sonar. Ceci peut se faire soit en consultant la page du plugin, soit sur la page de matrice de compatibilité.

Attention, l'installation des plugins se faisant dans le répertoire extensions/plugins/ du serveur Sonar, lorsque l'on met à jour Sonar, il est important de réaliser une sauvegarde de ce répertoire !

VIII-C. Développement de nouveaux plugins

Nous n'aborderons pas ici le développement d'un nouveau plugin pour Sonar, mais dans le cas où le sujet vous intéresse, vous pouvez vous rendre sur la page wiki de Sonar traitant de ce sujet.

VIII-D. API web services de Sonar

Sonar propose une série d'API qu'il est possible d'appeler afin de récupérer un certain nombre d'informations. On trouvera le détail de ces API sur cette page.

Pour appeler l'un de ces services, il suffit d'appeler une URL spécifique, en renseignant le nom du service appelé, et des différents paramètres propres à ce service, de cette façon :

 
Sélectionnez
http://url-sonar/api/[nom-du-service]?param1=value1&param2=value2

En général, on pourra spécifier la ressource (qui peut être un projet, un module, un package ou même une classe) ou encore le format (selon le service appelé, on peut disposer des formats texte, CSV, XML, JSON, etc.)

Voici quelques exemples d'appels à ces web services :

URL Définition
http://url-sonar/api/resources Récupération de la liste des projets analysés par Sonar.
http://url-sonar/api/resources?resource=foo:bar&metrics=blocker_violations,ncloc Récupération de la valeur des métriques blocker violations (nombre de violations bloquantes) et ncloc (nombre de lignes de code) sur le projet foo:bar.
http://url-sonar/api/reviews?resource=foo:bar Récupération de la liste des revues de code pour le projet foo:bar.
http://url-sonar/api/reviews?resource=foo:bar&format=json Récupération de la liste des revues de code pour le projet foo:bar mais au format JSON.
http://url-sonar/api/rules Liste des règles en vigueur.
http://url-sonar/api/sources?resource=foo:bar:my.package.SomeClass&format=txt Récupération (sous format texte) du code source (si celui-ci est accessible) de la classe my.package.SomeClass du projet foo:bar.


D'autres exemples sont disponibles sur le wiki de Sonar.

Notons également que Sonar propose une petite application Java pour simplifier les appels vers ces web services. On trouvera davantage d'informations ici.


précédentsommairesuivant

Vous avez aimé ce tutoriel ? Alors partagez-le en cliquant sur les boutons suivants : Viadeo Twitter Facebook Share on Google+   

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.