SonarQube Update 5.0

De EjnTricks

Cette mise à jour s'effectue sur le principe de l'installation décrite pour la version 4.4.


Hand-icon.png Votre avis

Nobody voted on this yet

 You need to enable JavaScript to vote


Download-icon.png Téléchargement

La version est téléchargée dans le répertoire /var/opt/sonarqube.

#sudo wget -O /var/opt/sonarqube/sonarqube-5.0.zip https://sonarsource.bintray.com/Distribution/sonarqube/sonarqube-5.0.zip


System-Install-icon.png Installation

Puis il faut décompresser l'archive dans la structure personnalisée sous /var/opt/sonarqube.

#sudo unzip /var/opt/sonarqube/sonarqube-5.0.zip -d /var/opt/sonarqube
#sudo mv /var/opt/sonarqube/sonarqube-5.0 /var/opt/sonarqube/5.0

Le fichier téléchargé peut être supprimé.

#sudo rm /var/opt/sonarqube/sonarqube-5.0.zip


Icon File Owner.png Propriétaire fichiers

L'installation a été réalisée avec le compte root. Il est préférable de donner la propriété au compte de service, soit sonar dans le cadre de cette installation.

#sudo chown -R sonar:sonar /var/opt/sonarqube/5.0


Icon ACL.png Sécurisation

Après avoir modifié le propriétaire des fichiers, il est conseillé de positionner des droits restrictifs afin que seul le propriétaire puisse accéder à ceux-ci.

#sudo chmod -R go-rwx /var/opt/sonarqube/5.0


Run-icon.png Script démarrage

La modifications dans le script de démarrage, fichier /var/opt/sonarqube/5.0/bin/linux-x86-64/sonar.sh, doit permettre de spécifier l'emplacement du fichier PID. Il est modifié ainsi.

# Location of the pid file.
#PIDDIR="."
PIDDIR="/run/sonarqube"

La création du répertoire est gérée lors du démarrage du service, comme décrit lors de l'installation du service.


Icon-log.png Fichiers log

Par défaut, les logs sont placés dans le répertoire logs de l’instance SonarQube :

  • /var/opt/sonarqube/5.0/logs/sonar.log
  • /var/opt/sonarqube/5.0/logs/access.log

La définition de ces emplacements se situe dans différentes configurations.

  • Fichier conf/wrapper.conf les écritures du wrapper dans les fichiers sonar.log
#********************************************************************
# Wrapper Logs
#********************************************************************

wrapper.console.format=PM
wrapper.console.loglevel=INFO
wrapper.logfile=../../logs/sonar.log
wrapper.logfile.format=M
wrapper.logfile.loglevel=INFO
  • Fichier conf/sonar.properties pour sonar.log et access.log
#--------------------------------------------------------------------------------------------------
# LOGGING

# Level of information displayed in the logs: NONE (default), BASIC (functional information)
# and FULL (functional and technical details)
#sonar.log.profilingLevel=NONE

# Path to log files. Can be absolute or relative to installation directory.
# Default is <installation home>/logs
#sonar.path.logs=logs


Afin de centraliser les logs, les messages sont redirigés vers /var/log/sonarqube en mettant en place des liens symboliques. Ceci permet de ne pas modifier les fichiers de configurations, limitant les modifications lors des futures montées de version. Le répertoire /var/opt/sonarqube/5.0/logs existe déjà et sera supprimé. Du fait de cette organisation, utilisation d'un répertoire common, un répertoire /var/opt/sonarqube/common/logs sera créé lors du démarrage. Pour ce dernier, le lien est préalablement créé.

#sudo rmdir /var/opt/sonarqube/5.0/logs
#sudo ln -s /var/log/sonarqube /var/opt/sonarqube/5.0/logs
#sudo chown -h sonar:sonar /var/opt/sonarqube/5.0/logs


Icon-Configuration-Settings.png Paramétrages

Les fichiers de paramétrages seront déplacés dans le répertoire /var/opt/sonarqube/common/conf afin de faciliter les montées de version. Ils ont très certainement écrit sur un environnement Windows, et dans le cadre d'une installation sous Linux, il est préférable de "formater" les fichiers avec l'utilitaire fromdos. Les fichiers vont être modifiés et placés dans le répertoire common, il est donc nécessaire d'arrêter le service avant les modifications.

#sudo systemctl stop sonarqube
#sudo fromdos -p /var/opt/sonarqube/5.0/conf/*

Le fichier sonar.properties est légèrement différent de celui pour la précédente version et il est modifié avant d'être placé dans le répertoire /var/opt/sonarqube/common/conf.

Icon-database.png Base de données

La configuration MySql a été réalisée depuis les premières versions. Elle pourrait être reprise, mais le format du fichier sonar.properties a été légèrement modifié. De plus, des éléments de paramétrages ont été supprimés.

Un exemple est fourni dans le fichier et il suffit de commenter le paramètre actif, sur une base H2, et d'activer celui pour MySql. Il faut également configurer le compte d'accès à la base en renseignant les paramètres sonar.jdbc.username et sonar.jdbc.password

# User credentials.
# Permissions to create tables, indices and triggers must be granted to JDBC user.
# The schema must be created first.
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar

#----- Embedded Database (default)
# It does not accept connections from remote hosts, so the
# server and the analyzers must be executed on the same host.
#sonar.jdbc.url=jdbc:h2:tcp://localhost:9092/sonar

# H2 embedded database server listening port, defaults to 9092
#sonar.embeddedDatabase.port=9092


#----- MySQL 5.x
#sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance

User-group-icon.png Annuaire LDAP

La configuration LDAP a été mise en place depuis la version 1.1 du plugin, sans être modifiée. Lors de cette mise à jour, celle-ci est reprise pour être épurée. Les lignes suivantes sont ajoutées au fichier de configuration /var/opt/sonarqube/common/conf/sonar.properties.

#--------------------------------------------------------------------------------------------------
# LDAP Configuration
# General Configuration
sonar.security.realm=LDAP
ldap.url=ldap://localhost:389

# User Configuration
ldap.user.baseDn=ou=people,dc=ejnserver,dc=fr
ldap.user.request=(uid={login})
ldap.user.realNameAttribute=cn
ldap.user.emailAttribute=mail

# Group Configuration
ldap.group.baseDn=ou=groups,dc=ejnserver,dc=fr
ldap.group.request=(&(objectClass=groupOfNames)(member={dn}))

Configuration App Web-Icon.png Contexte

Il faut donc spécifier à l'instance qu'il y a un contexte de déploiement, soit sonar, à mettre en place en modifiant le paramètre sonar.web.context.

#--------------------------------------------------------------------------------------------------
# WEB SERVER

# Web server is executed in a dedicated Java process. By default heap size is 768Mb.
# Use the following property to customize JVM options.
#    Recommendations:
#
#    The HotSpot Server VM is recommended. The property -server should be added if server mode
#    is not enabled by default on your environment: http://docs.oracle.com/javase/7/docs/technotes/guides/vm/server-class.html
#
#    Set min and max memory (respectively -Xms and -Xmx) to the same value to prevent heap
#    from resizing at runtime.
#
#sonar.web.javaOpts=-Xmx768m -XX:MaxPermSize=160m -XX:+HeapDumpOnOutOfMemoryError

# Same as previous property, but allows to not repeat all other settings like -Xmx
#sonar.web.javaAdditionalOpts=

# Binding IP address. For servers with more than one IP address, this property specifies which
# address will be used for listening on the specified ports.
# By default, ports will be used on all IP addresses associated with the server.
#sonar.web.host=0.0.0.0

# Web context. When set, it must start with forward slash (for example /sonarqube).
# The default value is root context (empty value).
#sonar.web.context=
sonar.web.context=/sonar


Share-icon.png Fichiers communs

Les liens vers les fichiers communs sont mis en place.

#sudo rm -rf /var/opt/sonarqube/5.0/conf
#sudo ln -s /var/opt/sonarqube/common/conf /var/opt/sonarqube/5.0/conf
#sudo chown -h sonar:sonar /var/opt/sonarqube/5.0/conf
#sudo rm -rf /var/opt/sonarqube/5.0/data
#sudo ln -s /var/opt/sonarqube/common/data /var/opt/sonarqube/5.0/data
#sudo chown -h sonar:sonar /var/opt/sonarqube/5.0/data
#sudo rm -rf /var/opt/sonarqube/5.0/extensions/plugins
#sudo ln -s /var/opt/sonarqube/common/extensions/plugins /var/opt/sonarqube/5.0/extensions/plugins
#sudo chown -h sonar:sonar /var/opt/sonarqube/5.0/extensions/plugins
#sudo rm -rf /var/opt/sonarqube/5.0/temp
#sudo ln -s /var/opt/sonarqube/common/temp /var/opt/sonarqube/5.0/temp
#sudo chown -h sonar:sonar /var/opt/sonarqube/5.0/temp


Run-icon.png Exécution

Lors de l'installation de SonarQube en service, un lien /var/opt/sonarqube/installed a été mis en place pour pointer sur la version à activer. Des liens ont également été mis en place depuis /var/opt/sonarqube/common vers /var/opt/sonarqube/installed. Ainsi, en modifiant le lien installed, ceux-ci seront automatiquement activés sans aucune modification nécessaire.

#sudo rm /var/opt/sonarqube/installed
#sudo ln -s /var/opt/sonarqube/5.0 /var/opt/sonarqube/installed
#sudo chown -h sonar:sonar /var/opt/sonarqube/installed

Il suffit de relancer le service pour la prise en compte de la mise à jour.

#sudo systemctl start sonarqube


Lock-icon.png Permissions compte base de données

Suite à l'installation, les droits d'accès du compte MySql ont été réduits. Afin de s'assurer qu'aucun problème n'aura lieu, les permissions sont temporairement augmentées pour la mise à jour, en cas de modification du schéma.

mysql> REVOKE ALL on sonar.* FROM 'sonar'@'127.0.0.1';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL ON sonar.* TO 'sonar'@'127.0.0.1';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)


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

Une mise à jour de la base de données est nécessaire pour cette version, ce qui est indiqué dans la trace d'exécution, fichier /var/log/sonarqube/sonar.log.

WARN  web[o.s.s.p.DatabaseServerCompatibility]  Database must be upgraded. Please browse /setup

Celle-ci se déclenche en accédant à l'URL http://SERVER/sonar/setup.


Lock-icon.png Permissions compte base de données post install

Une fois l'installation terminée, les droits du compte sur la base de données sont diminués. Dans le cadre de cette mise à jour, cela n'était pas nécessaire. Les commandes suivantes sont exécutées.

mysql> REVOKE ALL on sonar.* FROM 'sonar'@'127.0.0.1';
Query OK, 0 rows affected (0.00 sec)

mysql> GRANT SELECT, INSERT, UPDATE, DELETE ON sonar.* TO 'sonar'@'127.0.0.1';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)


Bug-icon.png Erreurs

Delete-file-icon.png Fichiers travail

Les données propres à ElasticSearch, créés lors des précédentes versions, sont incompatibles avec cette version. Un message d'erreur est affiché dans la log sonar.log lors du démarrage du service.

2015.09.13 15:42:52 INFO  sea[o.e.cluster.service]  [sonar-1442151764315] new_master [sonar-1442151764315][xUhwLRh1SFi6DIk8i-zy0g][etienne-server]
[inet[/192.168.1.32:9001]]{rack_id=sonar-1442151764315}, reason: zen-disco-join (elected_as_master)
2015.09.13 15:42:52 INFO  sea[o.e.discovery]  [sonar-1442151764315] sonarqube/xUhwLRh1SFi6DIk8i-zy0g
2015.09.13 15:42:52 WARN  sea[o.e.indices.cluster]  [sonar-1442151764315] [logs] failed to add mapping [sonarLogs], source [{"sonarLogs":{"dynamic":"false","_id":
{"path":"key"},"properties":{"action":{"type":"string","index_analyzer":"keyword","search_analyzer":"whitespace","fields":{"sort":{"type":"string","analyzer":"sortable"}}},
"createdAt":{"type":"date","format":"date_time"},"details":{ "type":"nested","dynamic":"true","properties":{"key":{"type":"string"},"param_countEmpty":{"type":"string"},
"param_format":{"type":"string"},"param_max":{"type":"string"},"param_tabWidth":{"type":" string"},"profileKey":{"type":"string"},"ruleKey":{"type":"string"},"severity":
{"type":"string"}}},"key":{"type":"string","index_analyzer":"keyword","search_analyzer":"whitespace"},"login":{"type":"string","index_analyzer":"keyword","search_analyzer":
"whitespace","fields":{"words":{"type":"string","index_analyzer":"index_words","search_analyzer":"search_words"},"grams":{"type":"string","index_analyzer":"index_grams",
"search_analyzer":"search_grams"}}},"message":{"type":"string","index_analyzer":"keyword","search_analyzer":"whitespace","fields":{"words":{"type":"string",
"index_analyzer":"index_words","search_analyzer":"search_words"},"grams":{"type":"string","index_analyzer":"index_grams","search_analyzer":"search_grams"}}},
"type":{"type":"string","index_analyzer":"keyword","search_analyzer":"whitespace","fields":{"sort":{"type":"string","analyzer":"sortable"}}},
"updatedAt":{"type":"date","format":"date_time"}}}}]
org.elasticsearch.index.mapper.MapperParsingException: Analyzer [sortable] not found for field [sort]
        at org.elasticsearch.index.mapper.core.TypeParsers.parseField(TypeParsers.java:213) ~[elasticsearch-1.1.2.jar:na]
        at org.elasticsearch.index.mapper.core.StringFieldMapper$TypeParser.parse(StringFieldMapper.java:156) ~[elasticsearch-1.1.2.jar:na]
        at org.elasticsearch.index.mapper.core.TypeParsers.parseMultiField(TypeParsers.java:274) ~[elasticsearch-1.1.2.jar:na]
        at org.elasticsearch.index.mapper.core.StringFieldMapper$TypeParser.parse(StringFieldMapper.java:184) ~[elasticsearch-1.1.2.jar:na]
        at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parseProperties(ObjectMapper.java:258) ~[elasticsearch-1.1.2.jar:na]
        at org.elasticsearch.index.mapper.object.ObjectMapper$TypeParser.parse(ObjectMapper.java:216) ~[elasticsearch-1.1.2.jar:na]
        at org.elasticsearch.index.mapper.DocumentMapperParser.parse(DocumentMapperParser.java:204) ~[elasticsearch-1.1.2.jar:na]
        at org.elasticsearch.index.mapper.DocumentMapperParser.parseCompressed(DocumentMapperParser.java:186) ~[elasticsearch-1.1.2.jar:na]
        at org.elasticsearch.index.mapper.MapperService.parse(MapperService.java:387) ~[elasticsearch-1.1.2.jar:na]
        at org.elasticsearch.index.mapper.MapperService.merge(MapperService.java:253) ~[elasticsearch-1.1.2.jar:na]
        at org.elasticsearch.indices.cluster.IndicesClusterStateService.processMapping(IndicesClusterStateService.java:402) [elasticsearch-1.1.2.jar:na]
        at org.elasticsearch.indices.cluster.IndicesClusterStateService.applyMappings(IndicesClusterStateService.java:357) [elasticsearch-1.1.2.jar:na]
        at org.elasticsearch.indices.cluster.IndicesClusterStateService.clusterChanged(IndicesClusterStateService.java:176) [elasticsearch-1.1.2.jar:na]
        at org.elasticsearch.cluster.service.InternalClusterService$UpdateTask.run(InternalClusterService.java:425) [elasticsearch-1.1.2.jar:na]
        at org.elasticsearch.common.util.concurrent.PrioritizedEsThreadPoolExecutor$TieBreakingPrioritizedRunnable.run(PrioritizedEsThreadPoolExecutor.java:134)
[elasticsearch-1.1.2.jar:na]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [na:1.7.0_72]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [na:1.7.0_72]
        at java.lang.Thread.run(Thread.java:745) [na:1.7.0_72]


Il suffit de purger le répertoire data/es et de relancer le service.

#sudo rm -rf /var/opt/sonarqube/common/data/es

Icon-Configuration-Settings.png Version Maven

A partir de cette version, la version 3.X de Maven est nécessaire Maven. Avec une version antérieure, l'analyse provoque une erreur dans la trace d'exécution, comme lors de l'exécution sous Jenkins.

[INFO] Execute: org.codehaus.sonar:sonar-maven-plugin:5.0:sonar
Downloading: http://localhost:8080/nexus/content/groups/public/org/codehaus/sonar/sonar-maven-plugin/5.0/sonar-maven-plugin-5.0.pom
2K downloaded  (sonar-maven-plugin-5.0.pom)
Downloading: http://localhost:8080/nexus/content/groups/public/org/codehaus/sonar/sonar/5.0/sonar-5.0.pom
50K downloaded  (sonar-5.0.pom)
Downloading: http://localhost:8080/nexus/content/groups/public/org/codehaus/sonar/sonar-maven-plugin/5.0/sonar-maven-plugin-5.0.jar
4K downloaded  (sonar-maven-plugin-5.0.jar)
[INFO] [sonar:sonar {execution: default-sonar}]
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Can not execute Sonar

Embedded error: Please use at least Maven 3.x to perform SonarQube analysis
[INFO] ------------------------------------------------------------------------
[INFO] Trace
org.apache.maven.lifecycle.LifecycleExecutionException: Can not execute Sonar
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:719)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:284)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
	at org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
	at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
	at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
	at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: org.apache.maven.plugin.MojoExecutionException: Can not execute Sonar
	at org.codehaus.mojo.sonar.Bootstraper.executeMojo(Bootstraper.java:103)
	at org.codehaus.mojo.sonar.Bootstraper.start(Bootstraper.java:79)
	at org.codehaus.mojo.sonar.SonarMojo.execute(SonarMojo.java:88)
	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
	at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
	... 17 more
Caused by: org.apache.maven.plugin.MojoExecutionException: Please use at least Maven 3.x to perform SonarQube analysis
	at org.sonar.maven.SonarMojo.execute(SonarMojo.java:45)
	at org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
	at org.codehaus.mojo.sonar.Bootstraper.executeMojo(Bootstraper.java:98)
	... 21 more

Sur les précédentes versions, une astuce a été mise en place dans le fichier pom.xml>/code>, afin que la détection de la version de SOnarQube ou Sonar en ajoutant le plugin <code>sonar-maven-plugin en version 1.0-beta-2 avec la configuration suivante :

<build>
	<sourceDirectory>src/main/java</sourceDirectory> 
	<testSourceDirectory>src/test/java</testSourceDirectory>
	<resources>
		<resource>
			<directory>src/main/resources</directory>
		</resource>
		<resource>
			<directory>src/main/config</directory>
		</resource>
	</resources>
	<testResources>
		<testResource>
			<directory>src/test/resources</directory>
		</testResource>
	</testResources>
	<plugins>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-eclipse-plugin</artifactId>
			<version>2.8</version>
			<configuration>
				<wtpversion>2.0</wtpversion>
				<downloadSources>true</downloadSources>
				<downloadJavadocs>true</downloadJavadocs>
			</configuration>
		</plugin>
		<plugin>
			<groupId>org.apache.maven.plugins</groupId>
			<artifactId>maven-compiler-plugin</artifactId>
			<configuration>
				<source>1.5</source>
				<target>1.5</target>
			</configuration>
		</plugin>
		<plugin>
			<groupId>org.codehaus.mojo</groupId>
			<artifactId>sonar-maven-plugin</artifactId>
			<version>1.0-beta-2</version>
		</plugin>
	</plugins>
</build>

En oubliant de supprimer cette injection, une erreur est provoquée à cause de la version de Maven.

[ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:1.0:sonar (default-cli) on project cxfTutorial:
Can not execute Sonar: UnsupportedOperationException -> [Help 1]
org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:1.0:sonar
(default-cli) on project cxfTutorial: Can not execute Sonar
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:216)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:116)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:80)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:51)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:307)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:193)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:106)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:862)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:286)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:197)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356)
Caused by: org.apache.maven.plugin.MojoExecutionException: Can not execute Sonar
	at org.codehaus.mojo.sonar.Bootstraper.executeMojo(Bootstraper.java:103)
	at org.codehaus.mojo.sonar.Bootstraper.start(Bootstraper.java:79)
	at org.codehaus.mojo.sonar.SonarMojo.execute(SonarMojo.java:88)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
	... 20 more
Caused by: java.lang.UnsupportedOperationException
	at org.apache.maven.plugin.internal.DefaultPluginManager.executeMojo(DefaultPluginManager.java:89)
	at org.codehaus.mojo.sonar.Bootstraper.executeMojo(Bootstraper.java:98)
	... 24 more	

Icon-Configuration-Settings.png Version Client SVN

Dans le cadre du déclenchement des analyses depuis Jenkins, avec le plugin Sonar-Jenkins, il est nécessaire de reconfigurer le système pour utiliser la version 1.8 du client SVN. Avec une version antérieure, un message d'erreur sera affiché dans la trace d'exécution.

svn: E155036: The working copy at '/usr/share/tomcat7/.jenkins/jobs/CXF Tutorial/workspace/src/main/java/fr/ejn/tutorial/cxf/phase'
is too old (format 8) to work with client version '1.8.10 (r1615264)' (expects format 31). You need to upgrade the working copy first.


	at org.codehaus.mojo.sonar.bootstrap.ExceptionHandling.handle(ExceptionHandling.java:41)
	at org.codehaus.mojo.sonar.bootstrap.RunnerBootstraper.execute(RunnerBootstraper.java:139)
	at org.codehaus.mojo.sonar.SonarMojo.execute(SonarMojo.java:132)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:134)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
	... 20 more

La version du client devra être configurée à 1.8 dans la page de configuration du sysètme de Jenkins.


Browser Icon.png Bug affichage Chrome

Sur cette version, l'édition des règles ne "permet pas" d'enregistrer les modifications avec le navigateur Chrome. En effet, les boutons Save et Cancel ne sont pas présentés. Ils sont en fait en dehors de la fenêtre.


Il faut alors passer par un autre navigateur comme Internet Explorer ou Firefox.


Viewer icon.png Voir Aussi

Upgrade Notes: https://docs.sonarqube.org/display/SONARQUBE53/Release+5.0+Upgrade+Notes