2015-12-07 22 views
5

dopo l'aggiornamento da 3.3.2 a Sonarqube 5.1.2, la mia creazione di Maven per un progetto che deve essere compilato con jdk 1.6 non riesce con:org/sonar/api/utils/SonarException: versione major.minor non supportata 51.0

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] 

sembra un problema di compatibilità, qualche idea? Indicando il vecchio sonar funziona ancora bene, indicando quello nuovo, ho capito.

Grazie, Roberto

risposta

8

Come si può leggere nel "Requirements" page o "SonarQube 5.0 Upgrade Guide", avete bisogno di almeno Java 7 per eseguire un'analisi SonarQube.

È sempre possibile creare (compilare, testare, ... ecc.) Il proprio progetto con Java 6, ma è necessario configurare l'analisi SonarQube per utilizzare Java 7 o versioni successive.

+1

esattamente come si configura l'analisi Sonar usare Java 8, mentre il progetto è ancora Java 7? Non ho trovato alcuna proprietà come sonar.java.home o simile ... – dokaspar

2

SonarQube 5.x richiede Java 7 per eseguire il server e per l'esecuzione di analisi.

Sarà ancora analizzare i progetti di costruire con Java 6, ma si dovrebbe eseguire l'analisi con Java 7.

0

Sono caduto quasi nello stesso problema eseguendo la mia analisi Sonar su Jenkins via Maven. Ad un certo punto un'analisi del progetto che ha funzionato cominciato a fallire, mentre:

  • SonarQube Server non era cambiato (versione 4.5.6)
  • Jenkins lavoro di configurazione non era cambiato (Maven lavoro configurato con JDK 1.7.0.45)
  • Maven config non era cambiato

E questo è quello che ho ottenuto:

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]] 

L'issu e qui è causato da una mancata corrispondenza di versione di Java tra:

  • Jenkins Job esecuzione con JDK 1.7.x
  • versione sonar-maven-plugin 3.1.1 essere compilato con JDK 1.8.x

La versione del plugin non è stata impostata esplicitamente nel pom.xml, quindi l'analisi ha iniziato a fallire quando il lavoro ha preso questa versione del plugin.

Per molte ragioni, il lavoro JDK non può essere aggiornato a 1.8, quindi la versione del plugin sonar-maven è stata corretta su 3.0.2.

0

Questo è corretto, è necessario la versione di Java 1.7. Assicurati di aver aggiornato la versione di jdk, non il jre.

Prima verifica quale variabile di env utilizzare per raccogliere la versione di jdk.

javac -version

uscita:

Picked up _JAVA_OPTIONS: -Xmx512M javac 1.7.0_80

Vai alla riga di comando e seguire il cambiamento di seguito.

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

o

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

+0

Questa risposta potrebbe essere migliorata usando alcuni [formattazione del codice] (https://meta.stackexchange.com/questions/22186/how-do-i -format-my-codice-blocchi). – Ben

Problemi correlati