默认配置SonarQube Scanner Tekton任务扫描Go项目报错
解决SonarQube Scanner Tekton任务Java版本不兼容问题
问题原因
默认SonarQube Scanner Tekton任务使用的镜像基于Java 11(类文件版本最高支持55.0),但你连接的SonarQube Server版本为2025.1.0,其依赖的类文件是用Java 17编译的(类文件版本61.0),导致版本不兼容抛出UnsupportedClassVersionError。
解决方案
1. 替换任务镜像为Java 17版本的SonarScanner
将Tekton任务中step-sonar-scan的镜像替换为支持Java 17的SonarScanner官方镜像,推荐使用sonarsource/sonar-scanner-cli:5.0.1-jdk17(该版本适配SonarQube 2025.x系列)。
2. 修改Tekton任务配置
以下是调整后的任务核心片段:
apiVersion: tekton.dev/v1beta1 kind: Task metadata: name: sonarqube-scanner spec: workspaces: - name: source params: - name: sonar-host-url type: string - name: sonar-token type: string - name: sonar-scanner-args type: string default: "" steps: - name: sonar-scan image: sonarsource/sonar-scanner-cli:5.0.1-jdk17 workingDir: $(workspaces.source.path) env: - name: SONAR_HOST_URL value: $(params.sonar-host-url) - name: SONAR_TOKEN value: $(params.sonar-token) command: ["sonar-scanner"] args: ["$(params.sonar-scanner-args)"]
3. 验证修复效果
运行修改后的Tekton任务,检查日志中是否显示Java版本为17:
INFO: Java 17.x.x (64-bit)
若日志无版本错误且扫描完成,则修复成功。
内容的提问来源于stack exchange,提问作者Gas
相关产品推荐
相关产品推荐

