【发布时间】:2021-11-15 18:18:28
【问题描述】:
我已经使用配置中指向的 Java 11 安装了最新版本的 SonarQube,即 wrapper.config。我读过它甚至可以分析用 Java 8 编写的代码,但我遇到了以下异常:
[ERROR] 未能执行目标 org.sonarsource.scanner.maven:sonar-maven-plugin:3.8.0.2131:sonar (default-cli) 在项目 ptf-parent 上:执行目标的 default-cli org.sonarsource.scanner.maven:sonar-maven-plugin:3.8.0.2131:sonar 失败:执行时遇到 API 不兼容 org.sonarsource.scanner.maven:sonar-maven-plugin:3.8.0.2131:sonar: java.lang.UnsupportedClassVersionError: org/sonar/batch/bootstrapper/EnvironmentInformation 已编译 由 Java 运行时的更新版本(类文件版本 55.0),此版本的 Java 运行时仅识别最高 52.0 的类文件版本
目前,我的代码是使用 Java 8 构建的,我想使用最新的 SonarQube 版本进行分析。
我正在从 Eclipse IDE 运行分析器。我的所有项目都配置为使用 Java 8 和 Maven 3.8.2 使用声纳参数在 SonarQube 上推送报告,但它不起作用。
以下是我在 Eclipse Run as Maven build 中提供的参数:
-e clean install sonar:sonar -Dsonar.java.jdkHome=C:\Program Files\Java\jdk1.8.0_251 -Dsonar.project
-Dsonar.projectKey=TESTPROJECT -Dsonar.host.url=http://localhost:9000 -Dsonar.login=a2603f6cd079e4a7833179333333333333333333e
【问题讨论】:
-
您可以为项目提供不同的 Java 版本,方法是在文档之后提供适当的 Java 主目录:docs.sonarqube.org/latest/analysis/languages/java
-
我已将 java_home 设置为 JDK 11,但无法正常工作。
-
如果您的项目使用 Java 8,您必须阅读 项目的特定 JDK 段落并将
sonar.java.jdkHome设置为 Java 8 JDK 安装。 -
检查我上面编辑的问题,在从 Eclipse 运行时的 maven 参数中,我提供了它。但它保持不变。如果我遗漏了什么,请告诉我。
-
我现在看到您正在使用 Maven,文档告诉您在这种情况下您不必设置任何内容。如果项目已正确配置并使用 Java 8 中的 Maven 构建,则只需运行该插件。并删除配置。