dimanche 24 janvier 2010

Sonar & eclipse + PMD & Checkstyle & Findbugs

J’aime beaucoup le feedback rapide que donne les plugins PMD, Checkstyle et Findbugs dans Eclipse. Mais il y avait certains freins à l’utilisation:

  • Checkstyle a trop de règles activées par défaut. Le travail de désactivation est laborieux.
  • Ce n’est pas facile de faire en sorte que tout le monde dans une équipe utilise les même règles.
  • Surtout lorsqu’on décide de les mettre à jour.
  • Sonar utilise les mêmes plugins, avec une configuration différente par défaut. Le résultat est que beaucoup de violations perdurent car c’est bien plus compliqué d’aller voir l’interface Sonar que de réagir à un avertissement qui apparait dans l'IDE.

Une solution est de centraliser les règles de à travers Sonar permettant ainsi de maintenir un seul ensemble de règles. Ce que je décris ici est une suite à un billet sur Checkstyle par Freddy Mallet.

Installer les plugins CheckStyle, FindBugs et PMD

Dans Sonar aller dans Configuration => Quality Profiles. L'onglet Permalinks copier les liens vers les règles PMD/CheckStyle/Findbugs pour chacun des profiles.

Dans Eclipse => Menu Window => Preferences :

  • Checkstyle -> New... -> Remote Configuration
  • Location : http://<sonar>/rules_configuration/export/java/<rule-name>/checkstyle.xml
  • Press 'Set as Default'

  • PMD -> (subsection) Configuration des règles -> Tout effacer -> Importer un ensemble de règles :
  • http://<sonar>/rules_configuration/export/java/<rule-name>/pmd.xml
  • Press OK

  • Findbugs
  • download file http://<sonar>/rules_configuration/export/java/<rule-name>/findbugs.xml
  • Window –> Preferences -> Java -> (subsection) Findbugs -> Filter files
  • Add the downloaded file to 'include filter files'

Petit plus. Je trouve les règles Checkstyle dans le profil par défaut de Sonar beaucoup plus pertinentes que celles livrées avec le plugin pour Eclipse.

Depuis peu un plugin sonar pour eclipse est disponible.

Edit 2011-04-07 :
- mis à jour l'endroit dans sonar où on trouve les liens des profiles
- ajout lien plugin sonar