Roberto
Roberto

Reputation: 195

org/sonar/api/utils/SonarException : Unsupported major.minor version 51.0

after upgrading from 3.3.2 to Sonarqube 5.1.2, my maven build for a project that needs to be built with jdk 1.6 is failing with:

build   03-Dec-2015 19:33:10    [INFO] ------------------------------------------------------------------------
build   03-Dec-2015 19:33:10    [ERROR] Failed to execute goal org.codehaus.mojo:sonar-maven-plugin:2.6:sonar (default-cli) on project my_project: Execution default-cli of goal org.codehaus.mojo:sonar-maven-plugin:2.6:sonar failed: An API incompatibility was encountered while executing org.codehaus.mojo:sonar-maven-plugin:2.6:sonar: java.lang.UnsupportedClassVersionError: org/sonar/api/utils/SonarException : Unsupported major.minor version 51.0
build   03-Dec-2015 19:33:10    [ERROR] -----------------------------------------------------
build   03-Dec-2015 19:33:10    [ERROR] realm =    plugin>org.codehaus.mojo:sonar-maven-plugin:2.6
build   03-Dec-2015 19:33:10    [ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
build   03-Dec-2015 19:33:10    [ERROR] urls[0] = file:/tmp/org/codehaus/mojo/sonar-maven-plugin/2.6/sonar-maven-plugin-2.6.jar
build   03-Dec-2015 19:33:10    [ERROR] urls[1] = file:/tmp/org/apache/maven/shared/maven-dependency-tree/2.1/maven-dependency-tree-2.1.jar
build   03-Dec-2015 19:33:10    [ERROR] urls[2] = file:/tmp/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar
build   03-Dec-2015 19:33:10    [ERROR] urls[3] = file:/tmp/org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.jar
build   03-Dec-2015 19:33:10    [ERROR] urls[4] = file:/tmp/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
build   03-Dec-2015 19:33:10    [ERROR] urls[5] = file:/tmp/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
build   03-Dec-2015 19:33:10    [ERROR] urls[6] = file:/tmp/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar
build   03-Dec-2015 19:33:10    [ERROR] urls[7] = file:/tmp/org/codehaus/plexus/plexus-utils/1.5.5/plexus-utils-1.5.5.jar
build   03-Dec-2015 19:33:10    [ERROR] urls[8] = file:/tmp/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
build   03-Dec-2015 19:33:10    [ERROR] urls[9] = file:/tmp/org/codehaus/sonar/runner/sonar-runner-api/2.4/sonar-runner-api-2.4.jar
build   03-Dec-2015 19:33:10    [ERROR] urls[10] = file:/tmp/commons-lang/commons-lang/2.6/commons-lang-2.6.jar
build   03-Dec-2015 19:33:10    [ERROR] urls[11] = file:/tmp/com/google/guava/guava/10.0.1/guava-10.0.1.jar
build   03-Dec-2015 19:33:10    [ERROR] urls[12] = file:/tmp/com/google/code/findbugs/jsr305/2.0.3/jsr305-2.0.3.jar
build   03-Dec-2015 19:33:10    [ERROR] Number of foreign imports: 1
build   03-Dec-2015 19:33:10    [ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]
build   03-Dec-2015 19:33:10    [ERROR] 
build   03-Dec-2015 19:33:10    [ERROR] -----------------------------------------------------
build   03-Dec-2015 19:33:10    [ERROR] -> [Help 1]

seems like a compatibility issue, any ideas? Pointing to the old sonar it still works fine, pointing to the new one, I get this.

Thanks, Roberto

Upvotes: 5

Views: 8927

Answers (4)

Jaykishan Parikh
Jaykishan Parikh

Reputation: 1

This is correct, you need java 1.7 version. Make sure you have updated jdk version not the jre.

First verify which env variable to used to pick up jdk version.

javac -version

output:

Picked up _JAVA_OPTIONS: -Xmx512M javac 1.7.0_80

Go to the command line and follow the below change.

Set JAVA_OPTIONS=C:\Program Files\Java\jdk1.7.0_80

or

Set JAVA_HOME=C:\Program Files\Java\jdk1.7.0_80 set PATH=%JAVA_HOME%\bin;%PATH%

Upvotes: 0

Jonathan Vanderick
Jonathan Vanderick

Reputation: 166

I fell into almost the same problem running my Sonar analysis on Jenkins via maven. At some point a project analysis that worked started to fail while:

  • SonarQube Server had not changed (version 4.5.6)
  • Jenkins Job config had not changed (Maven Job configured with JDK 1.7.0.45)
  • Maven config had not changed

And this is what I got:

org.codehaus.plexus.component.repository.exception.ComponentLookupException: org/sonarsource/scanner/maven/SonarQubeMojo : Unsupported major.minor version 52.0
17:27:29 [ERROR] -----------------------------------------------------
17:27:29 [ERROR] realm =    plugin>org.sonarsource.scanner.maven:sonar-maven-plugin:3.1.1
17:27:29 [ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
17:27:29 [ERROR] urls[0] = file:/c:/tools/.m2/repository/org/sonarsource/scanner/maven/sonar-maven-plugin/3.1.1/sonar-maven-plugin-3.1.1.jar
17:27:29 [ERROR] urls[1] = file:/c:/tools/.m2/repository/org/apache/maven/shared/maven-dependency-tree/2.2/maven-dependency-tree-2.2.jar
17:27:29 [ERROR] urls[2] = file:/c:/tools/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
17:27:29 [ERROR] urls[3] = file:/c:/tools/.m2/repository/org/eclipse/aether/aether-util/0.9.0.M2/aether-util-0.9.0.M2.jar
17:27:29 [ERROR] urls[4] = file:/c:/tools/.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar
17:27:29 [ERROR] urls[5] = file:/c:/tools/.m2/repository/org/sonatype/plexus/plexus-cipher/1.4/plexus-cipher-1.4.jar
17:27:29 [ERROR] urls[6] = file:/c:/tools/.m2/repository/org/codehaus/plexus/plexus-utils/3.0.22/plexus-utils-3.0.22.jar
17:27:29 [ERROR] urls[7] = file:/c:/tools/.m2/repository/org/sonarsource/scanner/api/sonar-scanner-api/2.7/sonar-scanner-api-2.7.jar
17:27:29 [ERROR] urls[8] = file:/c:/tools/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar
17:27:29 [ERROR] urls[9] = file:/c:/tools/.m2/repository/com/google/code/findbugs/jsr305/2.0.3/jsr305-2.0.3.jar
17:27:29 [ERROR] Number of foreign imports: 1
17:27:29 [ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]

The issue is caused here by a mismatch of java version between:

  • Jenkins Job executing with JDK 1.7.x
  • sonar-maven-plugin version 3.1.1 being compiled with JDK 1.8.x

The version of the plugin was not set explicitly in the pom.xml, so the analysis started to fail when the job took this version of the plugin.

For many reasons, the job JDK could not be upgraded to 1.8, so the version of the sonar-maven-plugin was fixed to 3.0.2.

Upvotes: 0

As you can read in the "Requirements" page or the "SonarQube 5.0 Upgrade Guide", you need at least Java 7 to run a SonarQube analysis.

You can always build (compile, test, ...etc) your project with Java 6, but then you need to configure your SonarQube analysis to use Java 7 or greater.

Upvotes: 8

benzonico
benzonico

Reputation: 10833

SonarQube 5.x requires java 7 to run the server and to run analysis.

It will still analyze projects build with java 6 but you should run the analysis with java 7.

Upvotes: 2

Related Questions