当源代码版本为jdk1.8但sonarcloud使用jdk17时,使用sonarcloud进行junit分析失败

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

这是从 azure pipeline 执行 maven verify 命令时收到的错误消息 目标 org.sonarsource.scanner.maven:sonar-maven-plugin:3.10.0.2594:sonar 的执行 default-cli 失败:执行 org.sonarsource.scanner.maven:sonar-maven-plugin:3.10 时遇到 API 不兼容。 0.2594:sonar:java.lang.UnsupportedClassVersionError:org/sonar/batch/bootstrapper/EnvironmentInformation已由更新版本的Java运行时(类文件版本55.0)编译,此版本的Java运行时仅识别类文件版本至 52.0

我期望我的代码应该被构建,并且在从天蓝色管道调用声纳云时应该被成功分析

java-8 azure-pipelines compatibility java-17 sonarcloud
1个回答
0
投票

用于运行 SonarScanner 的 Java:SonarQube 8.9 中使用 Java 8,SonarQube 9.0 及更高版本中使用 Java 11。

您可以将 JDK 升级到 JDK11 或将 SonarQube 降级到 8.9。要在 DevOps 管道中使用 JDK11,您可以尝试以下建议。

  1. 使用图像
    Ubuntu 20.04
    Ubuntu 22.04
    运行管道。 Java JDK 的默认版本是
    11.0.21+9
    。请参阅图片中的软件
  2. 使用maven任务时手动选择Java版本。设置
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.11'
    - task: Maven@3
      displayName: 'Execute Maven goal'
      inputs:
        mavenPomFile: 'pom.xml'
        options: '-Dmaven.test.failure.ignore=true'
        mavenOptions: '-Xmx3072m'
        mavenVersionOption: 'Default'
        javaHomeOption: 'JDKVersion'
        jdkVersionOption: '1.11'
        jdkArchitectureOption: 'x64'
        publishJUnitResults: true
        mavenAuthenticateFeed: false
        effectivePomSkip: false
        sonarQubeRunAnalysis: true
        sqMavenPluginVersionChoice: 'latest'
        codeCoverageToolOption: 'JaCoCo'
        testResultsFiles: '**/TEST-*.xml'
        goals: 'verify'

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