web-dev-qa-db-fra.com

Fichier de classe non pris en charge, version principale 55 lors de l'exécution de sonar-maven-plugin sous openjdk11

j'ai regardé les problèmes et réponses similaires, mais je n'ai pas trouvé de solution pour le mien.

J'utilise openjdk11 et Apache-maven-3.5.4 pour la compilation et le package de mon projet, tout fonctionne bien et l'application fonctionne normalement.

Mais lors de l'exécution de l'analyse du sonar basée sur la connexion au serveur sonarcube via les commandes maven, cela a échoué et un problème s'est produit. Cette commande a fonctionné lorsque j'utilisais jdk6 et maven 3.2.1.

La commande maven utilisée: mvn sonar: sonar -Dsonar.Host.url = {mysonarcube.server} -Dsonar.login = {mysonartoken}

La clé pom.xml concerne le sonar:

<plugin>
            <groupId>org.Apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.7.0</version>
            <configuration>
                <release>11</release>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>org.ow2.asm</groupId>
                    <artifactId>asm</artifactId>
                    <version>7.0-beta</version>
                </dependency>
            </dependencies>
        </plugin>
        <plugin>
            <groupId>org.sonarsource.scanner.maven</groupId>
            <artifactId>sonar-maven-plugin</artifactId>
            <version>3.5.0.1254</version>
        </plugin>
        <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <version>0.7.9</version>
            <configuration>
                <destFile>${sonar.jacoco.reportPath}</destFile>
                <append>true</append>
            </configuration>
        </plugin>

Le message d'erreur comme suit:

Java.lang.IllegalArgumentException: Unsupported class file major version 55
    at org.objectweb.asm.ClassReader.<init>(ClassReader.Java:166)
    at org.objectweb.asm.ClassReader.<init>(ClassReader.Java:148)
    at org.objectweb.asm.ClassReader.<init>(ClassReader.Java:136)
    at org.sonar.Java.resolve.BytecodeCompleter.loadClass(BytecodeCompleter.Java:242)
    at org.sonar.Java.resolve.Symbols.<init>(Symbols.Java:176)
    at org.sonar.Java.resolve.SemanticModel.createFor(SemanticModel.Java:60)
    at org.sonar.Java.model.VisitorsBridge.visitFile(VisitorsBridge.Java:109)
    at org.sonar.Java.ast.JavaAstScanner.simpleScan(JavaAstScanner.Java:96)
    at org.sonar.Java.ast.JavaAstScanner.scan(JavaAstScanner.Java:68)
    at org.sonar.Java.JavaSquid.scanSources(JavaSquid.Java:116)
    at org.sonar.Java.JavaSquid.scan(JavaSquid.Java:110)
    at org.sonar.plugins.Java.JavaSquidSensor.execute(JavaSquidSensor.Java:93)
    at org.sonar.scanner.sensor.SensorWrapper.analyse(SensorWrapper.Java:53)
    at org.sonar.scanner.phases.SensorsExecutor.executeSensor(SensorsExecutor.Java:88)
    at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.Java:82)
    at org.sonar.scanner.phases.SensorsExecutor.execute(SensorsExecutor.Java:68)
    at org.sonar.scanner.phases.AbstractPhaseExecutor.execute(AbstractPhaseExecutor.Java:88)
    at org.sonar.scanner.scan.ModuleScanContainer.doAfterStart(ModuleScanContainer.Java:180)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.Java:135)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.Java:121)
    at org.sonar.scanner.scan.ProjectScanContainer.scan(ProjectScanContainer.Java:302)
    at org.sonar.scanner.scan.ProjectScanContainer.scanRecursively(ProjectScanContainer.Java:297)
    at org.sonar.scanner.scan.ProjectScanContainer.doAfterStart(ProjectScanContainer.Java:271)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.Java:135)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.Java:121)
    at org.sonar.scanner.task.ScanTask.execute(ScanTask.Java:48)
    at org.sonar.scanner.task.TaskContainer.doAfterStart(TaskContainer.Java:84)
    at org.sonar.core.platform.ComponentContainer.startComponents(ComponentContainer.Java:135)
    at org.sonar.core.platform.ComponentContainer.execute(ComponentContainer.Java:121)
    at org.sonar.scanner.bootstrap.GlobalContainer.executeTask(GlobalContainer.Java:121)
    at org.sonar.batch.bootstrapper.Batch.doExecuteTask(Batch.Java:116)
    at org.sonar.batch.bootstrapper.Batch.execute(Batch.Java:71)
    at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.Java:46)
    at Java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
    at Java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
    at Java.base/Java.lang.reflect.Method.invoke(Method.Java:566)
    at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.Java:60)
    at com.Sun.proxy.$Proxy24.execute(Unknown Source)
    at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.Java:171)
    at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.Java:128)
    at org.sonarsource.scanner.maven.bootstrap.ScannerBootstrapper.execute(ScannerBootstrapper.Java:65)
    at org.sonarsource.scanner.maven.SonarQubeMojo.execute(SonarQubeMojo.Java:104)
    at org.Apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.Java:137)
    at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:208)
    at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:154)
    at org.Apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.Java:146)
    at org.Apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.Java:117)
    at org.Apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.Java:81)
    at org.Apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.Java:56)
    at org.Apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.Java:128)
    at org.Apache.maven.DefaultMaven.doExecute(DefaultMaven.Java:305)
    at org.Apache.maven.DefaultMaven.doExecute(DefaultMaven.Java:192)
    at org.Apache.maven.DefaultMaven.execute(DefaultMaven.Java:105)
    at org.Apache.maven.cli.MavenCli.execute(MavenCli.Java:954)
    at org.Apache.maven.cli.MavenCli.doMain(MavenCli.Java:288)
    at org.Apache.maven.cli.MavenCli.main(MavenCli.Java:192)
    at Java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at Java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
    at Java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
    at Java.base/Java.lang.reflect.Method.invoke(Method.Java:566)
    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)
    at org.codehaus.classworlds.Launcher.main(Launcher.Java:47)

Quelqu'un pourrait-il m'aider ou me donner un indice, merci.

9
Xiaoqiang Wang

L'analyseur SonarJava installé sur votre serveur est probablement <5,8

Pour pouvoir analyser Java 11 fichiers binaires, vous devez mettre à niveau vers SonarJava 5.8+ sur votre instance sonarqube.

9
benzonico

Cela a quelque chose à voir avec Java Versions.

Vous pouvez également voir cette question sur les "versions majeures".

Je ne sais pas non plus si sonarqube prend déjà en charge Java 11.

Donc, si vous avez une classe compilée avec Java11 et que sonarqube veut vérifier cela (mais ne prend pas encore en charge Java11), cela pourrait être le problème.

1
Naxos84