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.
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.
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:
drop database
), et l'utilisateur sonar (commande delete user
), voir la documentation de mysql pour plus d'informationssudo update-rc.d sonar remove