Skip to main content

Sonar

Nous verrons une utilisation vulgarisée et classique de SonarQube et Sonar Scanner, entièrement en local (localhost), afin de comprendre d'abord son fonctionnement natif.

SonarQube

SonarQube est un ensemble de solutions pour l'analyse de code, développé en Java. Par conséquent, il est nécessaire d'installer Java (version 11 minimum). Vous pouvez tester SonarQube en local (localhost) après installation.

Lien de téléchargement : https://www.sonarsource.com/products/sonarqube/downloads/

Décompressez-le à l'emplacement souhaité et lancez l'exécutable correspondant à votre plateforme.

Configurer Java

Les variables

Version de Java 22

Attention les dernières versions de sonar ne supporte pas des versions trop anciennes de java

Lien: https://download.oracle.com/java/22/archive/jdk-22.0.2_windows-x64_bin.zip

JAVA_HOME = La racine d'un dossier jdk

Exemple sur intellij il telecharge vos jdk ici : C:\Users\aschartier\.jdks

Screenshot

Screenshot

Path

Ouvrir le path :

Screenshot

Deux choses :

  • Supprimer les versions de java inutilisées (ex: 8,9, 11) si étaient la par défaut
  • Ajouter votre chemin java sdk (mais le bin du dossier ) Screenshot
Attention

Dans le path c'est le bin du dossier, ex: D:\Programs\jdk-22.0.2\bin

Start

Par exemple, sous Windows, il faut lancer le script StartSonar.bat situé dans le dossier bin/windows-x86-64.

StartSonar.bat

Cela peut prendre quelques minutes. Une fois prêt, vous pouvez accéder à l'interface d'administration via le port par défaut 9000 (http://localhost:9000).

Les identifiants de connexion par défaut sont :

  • Nom d'utilisateur : admin
  • Mot de passe : admin

Remarque importante : SonarQube ne scanne pas directement le code. Pour cela, vous devrez utiliser un autre outil appelé Sonar Scanner.

Token SonarQube

Il faut créer un projet dans SonarQube pour générer ensuite un token, qui nous sera utile par la suite.

Sonar Scanner

Vous devez télécharger Sonar Scanner, puis il est recommandé de l'ajouter à la variable d'environnement Path de votre système pour pouvoir l'utiliser globalement en ligne de commande.

https://docs.sonarsource.com/sonarqube-server/9.8/analyzing-source-code/scanners/sonarscanner

Screenshot

En général, l'outil Sonar Scanner se trouve dans le dossier /bin.

Donc ajouter le path du bin de notre Sonar Scanner dans les variables d'environnements système

Screenshot

Pour verifier que c'est reconnu :

sonar-scanner --version

En spécifiant ce dossier dans la variable Path, vous pourrez utiliser la commande sonar-scanner directement depuis n'importe quel répertoire.

sonar-scanner

Cela vous permettra d'analyser facilement votre code source avec SonarQube.

Analyser un projet

Il faut exécuter la commande sonar-scanner depuis la racine de votre projet contenant le code.

Vous avez deux choix :

  • Exécuter la commande avec tous les paramètres en ligne de commande (cmd)
  • Exécuter la commande avec un fichier sonar-project.properties situé dans la racine du projet

Avec sonar-project.properties

Exemple avec un fichier sonar-project.properties :

sonar.projectKey=mon-projet
sonar.sources=src
sonar.host.url=http://localhost:9000
sonar.token=monjeton

sonar.java.binaries=build/classes
  • sonar.sources : Le dossier qui contient le code à analyser de manière récursive
  • sonar.login : Le token généré via votre interface d'administration SonarQube

Exemple projet local Sonar

Dans le dashboard

alt text

alt text

alt text

Projet Java Gradle

Dans un projet java gradle il faut:

  • Ajouter le sonar dans les plugins gradle :
plugins {
id 'java'
id 'org.springframework.boot' version '3.5.9'
....
id "org.sonarqube" version "4.3.1.3277"
}
  • Ajouter les properties sonar dans le gradle (exemple tout à la fin du fichier build.gradle) :
sonar {
properties {
property "sonar.projectKey", "ma-clé"
property "sonar.host.url", "http://localhost:9000"
property "sonar.token", "montoken"
}
}

Conclusion

Enfin lancer le scan :

sonar-scanner