Ce tutoriel concerne le logiciel d'analyse de code source : SonarQube.
Dans ce tutoriel, je vous présente :
son installation par docker
l'analyse d'un code C++
- Installation de SonarQube par la méthode Docker
Cette méthode est bien plus rapide car le container docker SonarQube est déjà tout prêt
Tout d'abord, il faut installer docker
apt-get install docker
Une fois réalisé, il faut chercher l'image docker SonarQube
docker search sonarqube
Il existe plusieurs images de SonarQube. J'ai pris l'image officielle. Vous pouvez selon votre convenance, prendre une image différente.
docker pull sonarqube
Pour lancer le container, vous tapez cette commande
docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube
Au bout de quelques secondes, votre instance SonarQube est disponible dans votre navigateur à l'adresse http://localhost:9000 ou votre_adresse_ip_locale:9000
Pour de logguer à l'interface, tapez admin en login et admin en mot de passe.
En regardant les plugins disponibles dans Administration/MarketPlace, on s'aperçoit que le plugin pour analyser le code source C++ est en licence privée.
Pour pouvoir analyser le code C++, on va télécharger le plugin sonar-cxx
wget https://github.com/SonarOpenCommunity/sonar-cxx/releases/download/cxx-1.2.1/sonar-cxx-plugin-1.2.1.1569.jar
Il faudra en fonction de la version, modifier l'URL du fichier à télécharger
Une fois téléchargé, il faut intégré l'analyseur dans le containeur docker
docker cp sonar-cxx-plugin-1.2.1.1569.jar sonarqube:/opt/sonarqube/extensions/plugins/sonar-cxx-plugin-1.2.1.1569.jar
puis redémarrer le containeur SonarQube
docker restart sonarqube
L'initialisation de SonarQube est assez longue pour la prise en compte du plugin installé.
En allant fouiller dans les plugins, on vérifie que sonar-cxx est installé (C++ Community)
Pour les prochains démarrage de SonarQube, il suffira de lancer cette commande
docker start sonarqube
- Installation de sonar-scanner et analyse d'un code source C++
Votre logiciel d'analyse est installé mais il faut désormais installer un scanneur de projets
Il faut récupérer une archive à cette adresse https://binaries.sonarsource.com/Distribution/sonar-scanner-cli. Nous allons prendre la plus récente :
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-3.3.0.1492-linux.zip
Code à adapter selon la version de sonar-scanner
Lorsqu'il est téléchargé, on le déplace dans le dossier /opt et on extrait l'archive
mv sonar-scanner-cli-3.3.0.1492-linux.zip /opt && cd /opt
unzip sonar-scanner-cli-3.3.0.1492-linux.zip
Puis, il faut modifier le fichier de configuration sonar-scanner.properties de sonar-scanner dans le dossier /opt/sonar-scanner-3.3.0.1492-linux/conf/
Pour cela, il faut supprimer le caractère # de la ligne commençant par sonar.host.url et de paramétrer l'adresse de démarrage de SonarQube.
Vous devriez avoir quelque chose comme cela :
sonar.host.url=192.168.0.5:9000
ou 192.168.0.5 est l'adresse ip locale de l'ordinateur
Maintenant on va faire connaitre au système l'emplacement ou est installé sonar-scanner :
export PATH=$PATH:/opt/sonar-scanner-3.3.0.1492-linux/bin
Vous pouvez vérifier que l'emplacement a bien été pris en compte :
echo $PATH
Pour vérifier que votre analyseur fonctionne correctement, on va créer un projet dans SonarQube. Vous remplissez les champs et vous conservez le code fourni juste avant la validation de votre nouveau projet
Vous créez un fichier se nommant sonar-project.properties dans la racine de votre projet. Vous renseignez ce fichier de cette façon
sonar.projectKey=Test
# this is the name and version displayed in the SonarQube UI. Was mandatory prior to SonarQube 6.1.
sonar.projectNam=Test
sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Replace "\" by "/" on Windows.
# This property is optional if sonar.modules is set.
sonar.sources=.
# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8
sonar.host.url=http://192.168.0.5:9000
sonar.login=de16f9f0cf02258b06d02346efacf3bbef889abe
Vous adaptez les informations du fichier selon les données copiées du code fourni juste avant la validation de votre nouveau projet
Vous lancez sonar-scanner dans le dossier racine de votre projet
sonar-scanner
Pour voir le résultat de l'analyse, vous retournez dans le logiciel SonarQube et vous cliquez sur "Finish this tutorial" et vous verrez l'analyse du code effectué par sonar-cxx