【问题标题】:How can I analyze Java 8 code using latest SonarQube free edition that uses Java 11? [duplicate]如何使用使用 Java 11 的最新 SonarQube 免费版分析 Java 8 代码? [复制]
【发布时间】: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 构建,则只需运行该插件。并删除配置。

标签: java sonarqube


【解决方案1】:

根据sonarqube community,您应该尝试以下操作:

编辑conf\wrapper.conf,特别是wrapper.java.command 到以下:

wrapper.java.command=C:\Program Files\Java\open jdk-11.0.2\bin\java 
#wrapper.java.command=java

【讨论】:

    猜你喜欢
    • 2019-11-08
    • 2017-08-04
    • 2017-12-31
    • 2019-03-12
    • 1970-01-01
    • 2010-09-23
    • 2019-07-15
    • 2014-08-08
    相关资源
    最近更新 更多