使用 Java 11 运行 SonarScanner 分析,使用 Java 8 运行目标代码

cho*_*omp 4 java sonarqube bitbucket-pipelines sonarcloud java-11

正如以下公告所指出的,SonarSource 终止了对使用 11 版之前的 Java 版本运行代码分析器的支持:

2021 年 1 月 - 将分析移至 Java 11

扫描仪环境中安装的 Java 版本必须在 2021 年 2 月 1 日之前至少升级到 Java 11。Java 11 之前的版本已被弃用,使用它们的扫描仪将在该日期停止运行。

此外,2021 年 1 月 11 日至 2021 年 1 月 15 日期间将会出现限电,在此期间,使用低于 11 的 Java 版本的扫描仪运行的首次分析将失败。为了避免这种不便,您应该在 2021 年 1 月 11 日之前升级。

这里讨论的 Java 安装特指在运行 SonarCloud 扫描仪分析工具的上下文中安装和使用的 JDK 或 JRE。这可能是您本地的构建环境或您的 Cl 服务。

这不会对项目代码所针对的 Java 版本产生任何影响。您仍然可以分析目标版本低于 11 的 Java 项目。

我尝试搜索有关如何运行 bitbucket 管道以使用 java 11 分析器执行 SonarScanner 分析的完整示例,但目标代码使用 java 11 之前的版本(例如 java 8),但我无法找到一个。按照这张图,应该是可以的。

aga*_*rys 8

我不确定是什么问题。该公告告知您必须使用 Java 11+ 来执行扫描,但您仍然可以使用 Java <11 编译代码。您没有提供有关您的项目的任何信息,因此我们以 Maven 项目为例。

这通常意味着你必须做这样的事情:

// set Java to 8
export JAVA_HOME=/path/to/jdk8/

// compile, test and build
mvn package

// set Java to 11
export JAVA_HOME=/path/to/jdk11/

// execute scanner
mvn sonar:sonar
Run Code Online (Sandbox Code Playgroud)