无法执行目标 org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184:sonar error

问题描述 投票:0回答:4

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

提到以下参数

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

Execution default-cli of goal org.sonarsource.scanner.maven:sonar-maven-plugin:3.9.1.2184:sonar failed: An API incompatibility was encountered while executing 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 [错误] urls[1] = 文件:/../.m2/repository/org/sonatype/plexus/plexus-sec-dispatcher/1.4/plexus-sec-dispatcher-1.4.jar [错误]国外进口数量:1 [错误]导入:条目[从领域ClassRealm导入[maven.api,父级:null]]

java-8 sonarqube sonar-maven-plugin
4个回答
1
投票

Sonarqube 9.0以上需要java 11.


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


0
投票

您可以通过以下命令来归档您的问题。我面临着同样的问题,但在命令下努力解决。

- mvn verify sonar:sonar -Dsonar.host.url=http://localhost:Port -Dsonar.login=Token -Dsonar.login=Sonar_username -Dsonar.password=Sonar_password


0
投票

这也可能是由 Java 8 版本的 Jacoco 使用 Java 11 版本的 Sonar 引起的。在这种情况下,Jacoco 版本也需要升级到 Java 11 版本。我将 Jacoco 从 0.7.8 升级到 0.8.8,问题就解决了。

© www.soinside.com 2019 - 2024. All rights reserved.