jenkins - 由于找不到命令,SonarQube 扫描仪在 Jenkins 管道中失败

标签 jenkins sonarqube jenkins-pipeline sonarqube-scan

我想从 Jenkins 管道运行 SonarQube Scanner,并且我遵循了文档。

关于该错误,似乎扫描仪存在,但未找到某些命令。我的 jenkins 实例在 Docker 中运行。

Jenkins 版本:2.46.1

SonarQube 扫描仪:2.6.1

+ /var/lib/jenkins/tools/hudson.plugins.sonar.SonarRunnerInstallation/SonarQube_Scanner/bin/sonar-scanner
/var/lib/jenkins/tools/hudson.plugins.sonar.SonarRunnerInstallation/SonarQube_Scanner/bin/sonar-scanner: line 56: which: command not found
/var/lib/jenkins/tools/hudson.plugins.sonar.SonarRunnerInstallation/SonarQube_Scanner/bin/sonar-scanner: line 66: exec: : not found

最佳答案

sonar-scanner脚本中,有这个 block

if [ -n "$JAVA_HOME" ]
then
  java_cmd="$JAVA_HOME/bin/java"
else
  java_cmd="$(which java)"
fi

鉴于我的 JAVA_HOME 未设置,名为 which 的脚本和命令未安装在我的容器内。

作为解决方法,我设置了环境变量 JAVA_HOME

关于jenkins - 由于找不到命令,SonarQube 扫描仪在 Jenkins 管道中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43643803/

相关文章:

jenkins - "java.io.NotSerializableException: java.io.PrintWriter"写入文件时 - Jenkins 工作流程

jenkins - 在哪里设置 -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=300

python - 浏览器未使用 python 脚本通过 Jenkins 启动

java - 如何在文件夹级别读取 Jenkins 凭据

git - Jenkins 在从 Git 获取代码时挂起

sonarqube - Sonar 分析两种语言

javascript - SonarLint 与 SonarTS

java - 生成 Jacoco 报告后运行 "Coverage information was not collected."时为 'gradle sonarRunner'

jenkins - 如何为新的 Sonar 项目设置非默认质量门

docker - Jenkins-Helm-尝试运行测试时未找到Docker