0

我的 Java 项目通过 Maven 在 1.8 中编写和编译。当我尝试使用 sonar-maven-plugin Ver 分析我的代码时出现以下错误。SonarQube 9.2.4 的 3.9.1.2184。

提到了以下参数。

sonar.java.jdkHome=D:....\jdk1.8.0_121 sonar.java.source=1.8

目标 org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184:sonar failed 的执行 default-cli:执行 org.sonarsource.scanner.maven:sonar-maven-plugin:3.9 时遇到 API 不兼容。 1.2184:sonar: java.lang.UnsupportedClassVersionError: org/sonar/batch/bootstrapper/EnvironmentInformation 已由 Java 运行时的更新版本(类文件版本 55.0)编译,此版本的 Java 运行时仅识别类文件版本到 52.0 [错误] --------------------------------- -------- [错误] 领域 = 插件>org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184 [错误] 策略 = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy [错误] urls[0] = 文件:/../.m2/repository/org/sonarsource/scanner/maven/sonar-maven-plugin/3.9.1.2184/sonar-maven-plugin-3.9.1.2184。jar [ERROR] urls[1] = file:/../.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar [ERROR] 国外进口数量:1 [错误]导入:条目[从领域ClassRealm导入[maven.api,父级:null]]

4

1 回答 1

0

有关 Java 类文件版本,请参阅https://javaalmanac.io/bytecode/versions/

您的错误告诉您,您使用的是 JDK 8 (52.0),但插件代码是使用 JDK 11 (55.0) 编译的。所以你的 JDK 无法理解插件类。

该怎么办?将用于执行 maven 构建的 JDK 更改为 JDK 11。您的源代码仍然可以是 java 8,您也可以为 jdk8 编译 - 但执行的 JDK 必须是 11+。

于 2022-02-04T11:47:37.740 回答