1. Page 1 sur 9 Zaghir.y
Table des matières
Sonar et sonar runner............................................................................................................................. 1
Installation et configuration :................................................................................................................. 2
Analyse d’un projet de type Java ........................................................................................................... 6
Configuration pour un projet Maven..................................................................................................... 8
Sonar et sonar runner
Fait le 02/05/2016
Logiciel utilisé :
- Eclipse version Mars ou Sts
- SonarQube 5.4
- Sonar-runner-dist-2.4
Utilisation de sonar
Sonar est un outil de qualimétrie logicielle, il permit de vérifier la duplication de code,
optimiser le code, rendre le code plus propre et facile à lire, il permet aussi d’évaluer votre
code par rapport à sa propre base de données ….
Sonar Option 1 :Base
interne de Sonar
Option 2 : Base Externe de
sonar (Wamp ,Xamp …)
Sonar-Runner (analyse)
Code à analyser
2. Page 2 sur 9 Zaghir.y
Le rôle de Sonar est :
- De récupérer les données soit les stoqués dans sa base interne ou une base extene comme Mysql
- Présenter les résultats
Le rôle de Sonar-Runner qui est un outil d’analyse , il va :
- Analyser les données
- Demander à Sonar de les présentés, car il est incapable de les affichés
Installation et configuration :
Pour le téléchargement des deux composantes de Sonar il faut partir sur le site de SonarQube :
http://www.sonarqube.org/downloads/ rescuper la derniere version ici c’est 5.4 , aussi récupérer
Sonar-runner ici c’est la version 2.4 sur le site :
http://docs.sonarqube.org/display/SONARQUBE51/Installing+and+Configuring+SonarQube+Runner
Apres avoir décompressé les deux fichiers zip, arranger les de la manière suivante :
Créer une variable d’environnement pour Sonar-Runner
4. Page 4 sur 9 Zaghir.y
Dans le fichier :
Vous documenter les lignes suivantes :
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewrit
eBatchedStatements=true&useConfigs=maxPerformance
sonar.web.port=9000
Dans cette configuration il faut créer une base de donnée avec le nom sonar dans Mysql et créer
aussi un utilisateur avec un username = sonar et password = sonar
5. Page 5 sur 9 Zaghir.y
Dans le fichier de configuration de Sonar-Runner documenter les lignes suivantes :
#----- Default SonarQube server
sonar.host.url=http://localhost:9000
#----- MySQL
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
sonar.jdbc.driver=com.mysql.jdbc.Driver
#----- Default source code encoding
sonar.sourceEncoding=UTF-8
#---- Default directory layout
sonar.sources=src/main/java
sonar.tests=src/test/java
sonar.binaries=target/classes
lancer Sonar , avec le raccourci déjà créer
Sonar va créer toutes les tables dans sa base Sonar
Sonar est près à être utiliser
6. Page 6 sur 9 Zaghir.y
Analyse d’un projet de type Java
Sonar peut analyser différentes types de projets, le lien montre les différentes configurations
proposé pour les autres langages
http://docs.sonarqube.org/display/SONAR/Analyzing+Source+Code
Dans le tutorial c’est un projet java qui va être analysé
Pour la configuration d’un projet simple, dans le site de sonar propose de créer un fichier : sonar-
project.properties qui va être enregistré dans la racine du projet
# must be unique in a given SonarQube instance
sonar.projectKey=my:project
# this is the name displayed in the SonarQube UI
sonar.projectName=Tradi-home
sonar.projectVersion=1.0
# Path is relative to the sonar-project.properties file. Replace "" by "/" on
Windows.
7. Page 7 sur 9 Zaghir.y
# Since SonarQube 4.2, this property is optional if sonar.modules is set.
# If not set, SonarQube starts looking for source code from the directory
containing
# the sonar-project.properties file.
sonar.sources=src/main/java/com/zaghir
# Encoding of the source code. Default is default system encoding
#sonar.sourceEncoding=UTF-8
# path to test source directories (optional)
#sonar.binaries=binDir
# option comma-separed list of path to libraries .Only path to JAR file and
#sonar.libraries=path/to/library.java,path/to/classes/dir
#The value of the property must be the kye of the language.
sonar.language=java
Dans le fichier Analyse-SAS.bat
Insérer les deux lignes de code :
cmd /c sonar-runner
cmd /c pause
créer un racourcci de fichier dans le bureau pour ne pas à chaque fois se déplacer jusqu’au projet
dans pour exécuter sonar-runner
Dès que sonor-runner fini son traitement, regarder le résultat dans le navigateur
8. Page 8 sur 9 Zaghir.y
Configuration pour un projet Maven
Si votre projet utilise déjà Maven 2 ou 3, le plus simple est de faire appel au plugin Maven de Sonar.
La première chose à faire est de définir quelques paramètres Maven à placer de préférence dans son
fichier settings.xml. Nous redéfinissons là les paramètres de connexion à la base de données, ainsi
que l'URL du serveur Sonar.
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEnc
oding=utf8</sonar.jdbc.url>
9. Page 9 sur 9 Zaghir.y
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>sonar</sonar.jdbc.username>
<sonar.jdbc.password>sonar</sonar.jdbc.password>
<!-- La ligne ci-dessous n'est utile que si le port par défaut (9000)
est modifié dans le fichier de configuration. -->
<sonar.host.url>http://url-serveur:1234</sonar.host.url>
</properties>
</profile>
Il suffit ensuite de lancer la commande suivante :
mvn sonar:sonar
Il est recommandé de réaliser une installation des artefacts Maven de son projet avant (surtout dans
le cas d'un projet multimodules). Nous procéderons ainsi (on notera que les tests sont ignorés lors de
la première commande, car ils seront exécutés par le plugin Sonar) :
mvn clean install -Dtest=false -DfailIfNoTests=false
mvn sonar:sonar
Si la commande précédente ne peut être utilisée, ou que l'on souhaite réaliser l'analyse en une seule
commande Maven, on privilégiera la commande suivante, ce qui aura toutefois l'inconvénient
d'exécuter les tests deux fois :
mvn clean install sonar:sonar -Dmaven.test.failure.ignore=true
Une fois cette commande exécutée, il sera possible de consulter l'analyse en se rendant sur le
serveur de Sonar.
A la fin de n’oublier pas d’arrêter sonar :
Sur l’invite de commande ou vous avez démarré par sonar startSonar taper control+c