Sonar Update Version 2.13.1 vers 2.14

De EjnTricks

La version 2.14 ne supporte plus la version 1.5 de JAVA pour la compilation. Elle doit être exécutée avec une JRE 1.6 minimum. L'installation est similaire à la précédente version, et le fichier sonar.properties continue d'être utilisée. Dès cette installation, l'intérêt de sortir le fichier du build est vérifié.

Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


System-Install-icon.png Download-icon.png Téléchargement et installation

Après avoir télécharger l'archive depuis le site de sonar, et l'avoir décompresser, il faut lancer le script build-war.sh, situé dans le répertoire war qui va générer le fichier war à installer dans le serveur Tomcat.

Ce script permet de construire le war à déployer. Cependant, la variable d'environnement sonarHome est construite avec le fichier de configuration build.xml.

  <pathconvert targetos="unix" property="sonarHome">
    <path location="${basedir}/.."/>
  </pathconvert>

Donc, le répertoire de décompression "devrait" être dans un sous répertoire du "home" de Sonar. Dans le cadre de cette utilisation le "home" se situe à l'emplacement /var/opt/sonar. Le paramétrage dans le build.xml

  <pathconvert targetos="unix" property="sonarHome">
    <!-- <path location="${basedir}/.."/> -->
    <path location="/var/opt/sonar"/>
  </pathconvert>
#./build-war.sh
Buildfile: build.xml

clean:
   [delete] Deleting directory /home/etienne/install/sonar/sonar-2.14/war/build
   [delete] Deleting: /home/etienne/install/sonar/sonar-2.14/war/sonar.war

war:
    [mkdir] Created dir: /home/etienne/install/sonar/sonar-2.14/war/build/sonar-server
     [copy] Copying 2104 files to /home/etienne/install/sonar/sonar-2.14/war/build/sonar-server
     [copy] Copying 4 files to /home/etienne/install/sonar/sonar-2.14/war/build/sonar-server/WEB-INF/lib
      [war] Building war: /home/etienne/install/sonar/sonar-2.14/war/sonar.war
     [echo]
     [echo]       -----------------------------------------------------------------------------------------------------------
     [echo]       sonar.war is ready to be deployed. It is linked to the Sonar home directory:
     [echo]       /var/opt/sonar
     [echo]
     [echo]       IMPORTANT NOTES :
     [echo]       * supported web servers are Jetty and Tomcat 5.x/6.x/7.x
     [echo]       * the web application uses the Sonar home directory. For this reason it must be deployed on this host only.
     [echo]       * the war file must be rebuilt when :
     [echo]         - the Sonar home directory is moved to other location
     [echo]         - sonar is upgraded to a new version
     [echo]       -----------------------------------------------------------------------------------------------------------
     [echo]

BUILD SUCCESSFUL
Total time: 16 seconds


Le fichier sonar-war.properties dans WEB-INF/classes dans le war doit contenir la valeur du "home" modifié précédement:

# This file is used only when deploying the webapp to an application server.
# It is ignored when using the standalone mode shipped by default.

# Path to Sonar installation directory, if the environment variable/system property SONAR_HOME is not defined
SONAR_HOME=/var/opt/sonar

L'installation du war s'effectue par simple copie dans le répertoire webapps de Tomcat.

#sudo rm -rf /var/lib/tomcat6/webapps/sonar*
#sudo cp sonar.war /var/lib/tomcat6/webapps/
#sudo chown tomcat6:tomcat6 /var/lib/tomcat6/webapps/sonar.war

Dans le cadre de l'utilisation de MySql il est nécessaire de modifier la chaîne de connection en ajoutant rewriteBatchedStatements=true. Cette configuration se trouve dans le fichier SONAR_HOME/conf/sonar.properties, soit /var/opt/sonar/conf/sonar.properties dans le cadre de cette installation.

#----- MySQL 5.x/6.x
# Comment the embedded database and uncomment the following properties to use MySQL. The validation query is optional.
#sonar.jdbc.url:                            jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8
sonar.jdbc.url:                            jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
sonar.jdbc.driverClassName:                com.mysql.jdbc.Driver
sonar.jdbc.validationQuery:                select 1


Update icon.png Plugin-icon.png Plugins

Il faut ensuite mettre à jour les extensions et plugins installés. Ceux-ci se trouvent dans le "home" spécifié au niveau du fichier sonar-war.properties. Attention à ne pas supprimer les extensions téléchargées dans le répertoire SONAR_HOME/extensions/plugins/, soit /var/opt/sonar/extensions/plugins.

#sudo rm -rf /var/opt/sonar/extensions/jdbc-driver
#sudo rm -rf /var/opt/sonar/extensions/rules
#sudo rm -f /var/opt/sonar/lib/*.jar
#sudo rm -f /var/opt/sonar/lib/core-plugins/*.jar
#sudo rm -f /var/opt/sonar/lib/deprecated-maven-plugin/*.jar
#sudo cp -r extensions/jdbc-driver /var/opt/sonar/extensions/jdbc-driver
#sudo cp -r extensions/rules /var/opt/sonar/extensions/rules
#sudo cp lib/*.jar /var/opt/sonar/lib
#sudo cp lib/core-plugins/*.jar /var/opt/sonar/lib/core-plugins
#sudo chown -R tomcat6:tomcat6 /var/opt/sonar/extensions/*
#sudo chown tomcat6:tomcat6 /var/opt/sonar/lib/*.jar
#sudo chown tomcat6:tomcat6 /var/opt/sonar/lib/core-plugins/*.jar

Si le plugin utilisé dans les projets Maven est org.codehaus.sonar.sonar-maven-plugin, il est nécessaire de mettre à jour l'ensemble des fichiers pom.xml. La page Sonar Maven Plugin présente la mise en place d'une variable golbale, permettant de ne modifier qu'une seule variable appliquée aux projets.

Si le plugin utilisé est org.codehaus.mojo.sonar-maven-plugin, il n'est plus nécessaire de modifier la version. Ce plugin se charge de chercher la bonne version.

Suite à l'installation, deux plugins pouvaient être mis à jour:

  • LDAP de 1.0 → 1.1.1 (nécessite un redémarrage)
  • Useless Code Tracker de 0.4 → 0.5

Ces plugins sont mis à jour depuis l'interface d'administration de Sonar.


Icon-database-process.png Mise à jour de la base

Puis il est nécessaire de faire la mise à jour depuis l'URL http://SERVER/sonar/setup.