SonarQube

Sonar est une application open source dont le but est d'aider à contrôler la qualité d'un logiciel. Elle se base sur des contrôles statistiques du code source, et regarde notamment la validité des tests unitaires, la complexité du code, le pourcentage de lignes dupliquées, etc. Elle est notamment connue dans le monde de Java et s'intègre très bien avec Maven par le biais d'un plugin dédié. Il existe également un plugin pour Jenkins.

Mysql n'est pas une obligation. De fait l'application est fournie avec une base de données derby embarquée, mais comme son utilisation n'est pas recommandée en production, nous ne nous attarderons pas dessus. Il y a aussi des alternatives à Mysql (MariaDB), dont Oracle et PostgreSQL, voir ici pour la liste des possibilités détaillées.

Pour installer ce logiciel, il suffit de télécharger la dernière version et de l'extraire dans le dossier choisi pour l'installation. Par exemple, nous supposerons que vous l'avez installé dans /opt/sonar/sonar-5.6.6/

Suite à quoi il va falloir créer le lien permettant de lancer le logiciel depuis le dossier /usr/bin:

  sudo ln -s /opt/sonar/sonar-5.6.6/bin/linux-x86-32/sonar.sh /usr/bin/sonar

Tout d'abord, ouvrez le fichier /opt/sonar/sonar-5.6.6/conf/sonar.properties en modification puis repérez la section "Embedded database Derby", et commentez d'un # toutes les lignes de la section. Puis repérez la section correspondant à la base de données que vous souhaitez utiliser et décommentez les trois lignes qui y figurent. Si vous parcourez ce fichier, vous remarquerez que par défaut, l'application va s'attendre à avoir l'accès à une base de données nommée sonar disponible sur le port 3306, et accessible par l'utilisateur sonar ayant pour mot de passe sonar. Vous pouvez bien sûr modifier ces valeurs, étant donné que c'est vous qui allez créer ces accès en base de données.

Voici par exemple les manipulations à effectuer dans le cas le plus simple:

mysql -u root -p
Enter password:
mysql> CREATE DATABASE IF NOT EXISTS sonar CHARACTER SET utf8 COLLATE utf8_bin;
mysql> CREATE USER 'sonar'@'%' IDENTIFIED BY 'sonar';
mysql> GRANT ALL ON sonar.* TO 'sonar'@'%';
mysql> quit;

Ceci suppose que vous connaissez le mot de passe super utilisateur de MySQL.

Le joker '%' autorise des connexions à la base de données depuis n'importe quel ordinateur du réseau, ce qui est potentiellement dangereux. Si vous n'avez qu'un ordinateur dans votre réseau, mettez 'localhost' à la place. Sinon, configurez votre pare-feu.

Créez le fichier /etc/init.d/sonar et placez-y le contenu suivant :

#!/bin/sh
/usr/bin/sonar $*

puis attribuez-lui les droits d'exécution :

 sudo chmod 755 /etc/init.d/sonar

et configurez-le en tant que service :

 sudo update-rc.d sonar defaults 98 02

Si vous avez effectué l'étape de configuration en tant que service, démarrez sonar via la commande:

 sudo /etc/init.d/sonar start

Sinon utilisez

 sudo sonar start

Vous pouvez remplacer start par stop pour arrêter le service. L'option restart est également disponible. Une fois lancé, l'interface Web de configuration du serveur est disponible par défaut sur l'url http://localhost:9000/

Bien sûr, Sonar ne vous est pas d'une grande utilité en l'état. Si vous utilisez toutes les options par défaut, il vous reste encore à aller dans le répertoire où se trouve le pom de votre projet, et à taper mvn sonar:sonar. Si par hasard vous avez personnalisé un petit peu l'installation, comme nous l'avons fait nous mêmes en choisissant par exemple d'utiliser MySQL à la place de Derby, il vous faudra encore modifier le fichier settings.xml de Maven, pour y ajouter un profile sonar personalisé. Vous pouvez vous inspirer de l'exemple fournit ici.

Pour supprimer cette application, il faut:

  1. Supprimer le répertoire d'installation
  2. Supprimer la base de données Sonar (commande drop database), et l'utilisateur sonar (commande delete user), voir la documentation de mysql pour plus d'informations
  3. Supprimer le lien créé pour sonar dans /usr/bin/
  4. Le cas échéant, déparamètrer sonar en tant que service via la commande
 sudo update-rc.d sonar remove
  • sonar.txt
  • Dernière modification: Le 27/03/2018, 16:24
  • (modification externe)