Installer et utiliser SonarQube en 5 minutes

SonarQube est une application open-source regroupant sous forme de plugins divers outils permettant de définir la qualité du code source d’un projet (couverture du code par les tests, duplication de code, respect des conventions, …).

Nous allons voir ici comment déployer très rapidement cet outil dans sa version 4.1.2 sur un poste Debian, sans avoir à l’installer et de lancer une analyse rapide d’un projet. SonarQube nécessite cependant Java pour fonctionner.

Cette opération se résume en 5 étapes:

  1. Téléchargement de SonarQube et lancement du service
  2. Télechargement de SonarQube Runner
  3. Création du fichier de configuration
  4. Ajout du plugin PHP
  5. Lancement de l’analyse
  6. Résultats

Téléchargement de SonarQube et lancement du service

wget http://dist.sonar.codehaus.org/sonar-3.7.4.zip
unzip sonar-3.7.4.zip
cd sonar-3.7.4
sh bin/{version linux}/sonar.sh console

Téléchargement de SonarQube Runner

wget http://repo1.maven.org/maven2/org/codehaus/sonar/runner/sonar-runner-dist/2.3/sonar-runner-dist-2.3.zip
unzip sonar-runner-dist-2.3.zip

Fichier de configuration

Allez à la racine de votre projet puis créez un fichier sonar-project.properties

vim sonar-project.properties

Remplissez le avec les lignes suivantes

# Required metadata
sonar.projectKey=MonProjet
sonar.projectName=MonProjet
sonar.projectVersion=0.1

sonar.sources=app
sonar.language=php
sonar.sourceEncoding=UTF-8
sonar.php.tests.reportPath=tests.xml
  • Les trois premières lignes concernent le nom du projet et sa version.
  • La ligne source est le chemin relatif (à partir de la base de votre projet et donc du fichier de configuration) où se trouvent le code source de l’application, ici app (framework CakePHP)
  • On précise le language de programmation utilisé
  • et l’encodage des sources
  • la dernière ligne permet de spécifier le fichier de résultats des tests (format junit) généré par exemple via Jenkins.

Installation d’un plugin (ici PHP)

Seul le langage Java est utilisé par défaut, on va donc aller activer des modules pour gérer un autre langage. Pour cela il suffit d’aller sur l’interface d’administration avec un navigateur web sur l’adresse :

http://localhost:9000

De cliquer sur Login (menu du haut) et de rentrer les identifiants : admin / admin

Pour ajouter un plugin on va

  • suivre les menus Settings /Update Center / Available plugin
  • Cliquer sur le nom du plugin à installer
  • Et cliquez sur le bouton installer
Ajout d'un plugin dans Sonar

Ajout d’un plugin dans Sonar

Il existe un plugin pour de nombreux langage de programmation et outils, ainsi que pour traduire cette interface d’administration.

Une fois le plugin installé il faut relancer le serveur en interrompant la commande du service (étape 1) et en la relançant :

sh {chemin vers sonar}/sonar-3.7.4/bin/{version linux}/sonar.sh console

Lancement de l’analyse

On va se placer à la racine du repertoire du projet, là où se trouve le fichier de configuration et lancer SonarQube-Runner :

sh {chemin de sonarqube-runner}/sonar-runner-2.3/bin/sonar-runner
Lancement de l'analyse avec SonarQube-runner

Lancement de l’analyse avec SonarQube-runner

Résultats

On va se rendre sur l’interface web :

http://localhost:9000

Puis parcourir les projets pour voir le résultat de l’analyse:

SonarQube - Interface du projet

SonarQube – Interface du projet

Conclusion

La mise en place de SonarQube pour l’analyse d’un code-source s’est révélée extrêmement simple et rapide. Mais cette opération basique ne prend pas en compte toutes les possibilité de SonarQube, il faudra veiller à configurer l’outil à son goût ainsi que les chemins vers les différents rapports de PHPUnit. Naturellement SonarQube bénéficie d’une bonne documentation pour cela.

Note

Pour cette démonstration nous avons utilisée la version open-source communautaire mais il existe d’autres versions à destination des entreprises.

Démo de SonarQube

Pour trouver rapidement une configuration pour votre projet n’hésitez pas à chercher dans ce projet.

Publicités

2 réflexions sur “Installer et utiliser SonarQube en 5 minutes

  1. Abdelouafi dit :

    Qsq vous voulez dire par la verson du projet , et pour le language le projet sur lequel je veux faire le test est un projet j2ee est ce que je dois mettre j2ee a la place de Php ?
    Merci

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s