使用 jdk 11 docker 镜像运行 Sonarqube 阶段

Run Sonarqube stage with jdk 11 docker image

提问人:Elian 提问时间:11/16/2023 最后编辑:Elian 更新时间:11/17/2023 访问量:43

问:

我目前正在构建一个使用 JDK 8 的项目。但是,在执行 SonarQube 阶段期间,我遇到了一个与日志相关的问题,该问题表明我的 SonarQube 服务中安装的一个插件与用于项目构建的 JDK 版本不兼容。

现在,我正在尝试找到一种解决方案来使用 JDK 版本 11 运行 SonarQube 阶段。以下是该阶段的当前配置:

stage('Sonar') {
    environment {
        SCANNER_HOME= tool 'sonarscanner'
    }
    agent {
        docker {
            label 'sonar'
            image "artifact.me.com/docker/jdk/jdk-11:latest"
            args "-itd -v ${SCANNER_HOME}:/var/sonarScanner --privileged=true"
        }
    }
    steps {
        withSonarQubeEnv('SonarQube') {
            withVault([configuration: configuration, vaultSecrets: secrets]) {
                sh "/var/sonarScanner/bin/sonar-scanner -D ..."
            }
        }
    }
}

但是,当达到此阶段时,生成会卡住,下面是控制台中显示的错误消息:

15:13:06  Login Succeeded
15:13:06  [Pipeline] {
15:13:06  [Pipeline] isUnix
15:13:07  [Pipeline] withEnv
15:13:07  [Pipeline] {
15:13:07  [Pipeline] sh
15:18:14  process apparently never started in /data/jenkins/workspace/sonar-test@2@tmp/durable-928c6c08
15:18:14  (running Jenkins temporarily with -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.LAUNCH_DIAGNOSTICS=true might make the problem clearer)
Jenkins-pipeline sonarqube java-11 docker-image

评论


答:

0赞 Abdessamad DH 11/17/2023 #1

一种可能的解决方案/解决方法是使用 sonar-scanner-cli jar 文件

第 1 步:
使用 artifactory 代理从 maven-central 下载s onar-scanner jar file。

第 2 步:
使用 java 运行 sonar-scanner。

sh "java -jar ./sonar-scanner -D..."

评论

0赞 Elian 11/17/2023
同样的问题''' 15:29:20 信息:SonarScanner 4.8.0.2856 15:29:20 信息:Java 1.8.0_372 Temurin(64 位)15:29:22 警告:SonarScanner 将需要 Java 11 才能运行,从 SonarQube 9.x 开始 15:29:27 信息:------------------------------------------------------------------------15:29:27 信息:执行失败 15:29:27 错误:SonarScanner 执行期间出错 15:29:27 java.lang.IllegalStateException:插件 [cxx] 不支持 Java 1.8.0_372 '''