IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Contrôler la qualité de ses projets avec Sonar

Date de publication : 13/09/2008 , Date de mise à jour : 13/08/2009


II. Installation et configuration
II-A. Pré-requis
II-B. Installation et configuration
II-B-1. Paramétrage de la base de données
II-B-2. Installation et configuration
II-B-2-a. Installation comme service Windows
II-B-2-b. Intégration à un serveur Tomcat
II-C. Mise-à-jour d'un serveur existant
II-D. Démarrage


II. Installation et configuration

Il est à noter que la procédure d'installation et de configuration expliquée ici se base sur la version 1.10 de Sonar. La procédure diffère beaucoup de celle employée pour les premières versions de l'outil. En cas de besoin, le site de Sonar propose les procédures d'installation des versions antérieures de l'outil.


II-A. Pré-requis

Pour pouvoir fonctionner, Sonar nécessite l'installation d'une version 5 (ou supérieure) de Java, ainsi que de Maven 2 (2.0.7, 2.0.9, 2.0.10, 2.1.0 ou 2.2.0).

Sonar historise les données - ou metrics - des projets, et demande donc un accès à une base de données. Par défaut, Sonar est livré avec une base de données interne (Apache Derby), mais c'est avant tout dans le but de tester facilement l'outil. Il est toutefois très fortement conseillé d'avoir recours à une base de données de type MySQL, Oracle 10g ou encore PostgreSQL en local.

Depuis la version 1.3 de Sonar, celui-ci peut être embarqué au sein d'un serveur Tomcat 5.x. Il peut cependant être démarré en tant que serveur propre (et pouvant également s'installer comme un service Windows).


II-B. Installation et configuration


II-B-1. Paramétrage de la base de données

Comme nous l'avons dit, Sonar embarque une base de données Apache Derby. Toutefois, pour des raisons de confort, il peut être préférable de configurer Sonar pour accéder à une autre base de données, MySQL 5.x, Oracle 10g XE et PostgreSQL 8.3 étant supportées. Il faut ensuite éditer le fichier de configuration conf/sonar.properties. Par défaut, les trois lignes suivantes correspondent à la configuration Apache Derby :

sonar.jdbc.url: jdbc:derby://localhost:1527/sonar;create=true
sonar.jdbc.driver: org.apache.derby.jdbc.ClientDriver
sonar.jdbc.defaultTransactionIsolation: 1
Pour utiliser une base de données tierce, il faudra tout d'abord commenter ces trois lignes. Pour cela, il suffit d'ajouter un # devant chaque ligne. Il faut ensuite décommenter les lignes correspondant à la base de données choisie. Par exemple, pour MySQL, cela nous donnera :

sonar.jdbc.url: jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
sonar.jdbc.driver: com.mysql.jdbc.Driver
sonar.jdbc.validationQuery: select 1
Au niveau de la base de données, il faut créer la base sonar grâce aux commandes suivantes (exemple donné pour MySQL) :

mysql> CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql> grant all privileges on sonar.\* to 'sonar'@'localhost' identified by '\[your password\]';
mysql> flush privileges;
Il nous faut maintenant ajouter dans le fichier settings.xml utilisé par Maven 2 les informations propres à la base de données. Celles-ci seront utilisées par le plugin Sonar pour Maven 2. Les informations à ajouter sont définies ci-dessous :

...
    <profile>
        <id>sonar</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
             <sonar.jdbc.url>jdbc:mysql://localhost:3306/sonar?useUnicode=true&amp;characterEncoding=utf8</sonar.jdbc.url>
             <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://localhost:1234</sonar.host.url>
        </properties>
    </profile>
...

II-B-2. Installation et configuration

En premier lieu, il faut télécharger l'archive Sonar sur le site de SonarSource. A l'heure actuelle, la dernière version disponible est la 1.10 (août 2009). Il s'agit d'un fichier ZIP dont on décompressera le contenu dans un répertoire.

Une fois le ZIP téléchargé et décompréssé, il suffit d'exécuter la commande suivante (pour Windows) :

bin\windows-x86-32\StartSonar.bat

ou, pour les autres environnements :

bin/[OS]/sonar.sh console


II-B-2-a. Installation comme service Windows
Sonar peut être installé comme service Windows. La configuration de ce service est définie dans les fichiers conf/wrapper.conf et conf/sonar.properties. Il est préférable de ne pas toucher au premier de ces fichiers, celui-ci décrivant les caractéristiques du service Windows.

Il est possible de changer le port du serveur Sonar, qui est par défaut le port 9000. On éditera le fichier conf/sonar.properties pour changer la ligne suivante :
sonar.web.port:9000

A noter que cette valeur n'est utilisée que si Sonar est exécuté en serveur propre (donc ne concerne pas l'intégration à Tomcat).

Il suffit maintenant d'installer le service Windows en exécutant le fichier bin/windows-x86-32/InstallNTService.bat. Le démarrage de Sonar se fait désormais en démarrant le service Windows ainsi créé.

Notez la présence du fichier bin/windows-x86-32/UninstallNTService.bat qui permet de supprimer le service Windows, en cas de besoin.


II-B-2-b. Intégration à un serveur Tomcat
Il est possible d'intégrer Sonar à un serveur Tomcat 5.x. Bien que Tomcat 6.x et Jonas 4 ne soient pas officiellement supportés, il a été rapporté que Sonar fonctionnait effectivement bien sur ces serveurs.

La première chose est de configurer Sonar via le fichier conf/sonar.properties. Ensuite, il faut exécuter le script war/build-war.bat (ou war/build-war.sh). Une fois la commande terminée, le fichier sonar.war se trouvera dans le répertoire war/. Il suffira donc de le déployer sur le serveur Tomcat (on peut par exemple "déposer" ce nouveau fichier dans le répertoire webapps/ de Tomcat).

Sonar étant assez gourmand en mémoire, il est nécessaire de modifier le paramètre CATALINA_OPTS (se trouvant dans bin/catalina.bat par exemple) pour affecter un minimum de 512M de mémoire :

CATALINA_OPTS="-Xmx=512m"

Par défaut, le port de Tomcat est le 8080. L'accès au serveur de Sonar se fera donc à l'adresse http://url-du-serveur-tomcat:8080/sonar.


II-C. Mise-à-jour d'un serveur existant

Dans le cas où vous désirez mettre-à-jour un serveur Sonar déjà existant, il vous faudra suivre la procédure décrite sur cette page. Globalement, cette mise-à-jour se fait très simplement dans le cas où vous mettez-à-jour une version supérieure ou égale à Sonar 1.4.

Il conviendra de réaliser un backup de la base de données avant toute mise-à-jour !


II-D. Démarrage

Si Sonar n'a pas été installé comme service Windows, la commande bin/windows-x86-32/StartSonar.bat (Windows) ou bin/[plateforme]/sonar.sh start (pour les autres plateformes) permet de démarrer le serveur Sonar. Par défaut, il suffit de se rendre à l'adresse http://url-du-serveur-sonar:9000 pour accéder à Sonar. Si Sonar est déployé sur un serveur Tomcat, l'adresse sera plutôt http://url-du-serveur-tomcat:8080/sonar (8080 étant le port par défaut de Tomcat). Lors du premier démarrage, une page vide nous accueille:

Le bouton affiché ("Setup database") nous invite à créer la base de données. A noter que lors d'une migration de version de Sonar, le premier accès au serveur va afficher une page similaire, proposant de réaliser la migration de la base de données. Dans les deux cas, il s'agit d'un processus automatique, et nous attendrons donc la fin de celui-ci pour obtenir la page suivante :

La création d'un projet, ainsi que le remplissage des données se fait par l'intermédiaire de l'exécution d'un plugin Sonar pour Maven 2 sur le projet à surveiller (voir chapitres suivants).

 

Valid XHTML 1.0 TransitionalValid CSS!

Ce document est issu de http://www.developpez.com et reste la propriété exclusive de son auteur. La copie, modification et/ou distribution par quelque moyen que ce soit est soumise à l'obtention préalable de l'autorisation de l'auteur.