web-dev-qa-db-ja.com

openjdk11でsonar-maven-pluginを実行すると、サポートされないクラスファイルメジャーバージョン55

私は同様の問題と回答を見回しましたが、私の解決策は見つかりませんでした。

プロジェクトのコンパイルとパッケージにopenjdk11とApache-maven-3.5.4を使用していますが、すべて正常に動作し、アプリケーションは正常に実行されています。

しかし、Mavenコマンドを介してSonarcubeサーバーに接続することに基づいてソナー分析を実行すると、失敗し、いくつかの問題が発生します。このコマンドは、jdk6とmaven 3.2.1を使用していたときに機能しました。

使用されるmavenコマンド:mvn sonar:sonar -Dsonar.Host.url = {mysonarcube.server} -Dsonar.login = {mysonartoken}

キーpom.xmlはソナーに関連しています:

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

次のようなエラーメッセージ:

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)

誰でも助けてくれたり、ヒントをくれたりします、ありがとう。

9
Xiaoqiang Wang

サーバーにインストールされているSonarJavaアナライザーは、おそらく<5.8

Java 11バイナリファイルを分析するには、sonarqubeインスタンスでSonarJava 5.8+にアップグレードする必要があります。

9
benzonico

これは、Javaバージョン。

この質問 「メジャーバージョン」についても見ることができます。

SonarqubeがすでにJava 11をサポートしているかどうかもわからない。

したがって、Java11でコンパイルされたクラスがあり、sonarqubeがこれをチェックしたい(ただし、Java11をまだサポートしていない)場合、これが問題になる可能性があります。

1
Naxos84