由于找不到命令,SonarQube 扫描仪在 Jenkins 管道中失败
SonarQube Scanner fails in a Jenkins pipeline due to command not found
我想 运行 来自 Jenkins 管道的 SonarQube 扫描仪,我遵循了文档。
关于错误,似乎扫描仪存在,但找不到某些命令。我的詹金斯实例 运行s 在 docker.
中
詹金斯版本: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
确保PATH完整,或者检查重置是否足够
def sonarqubeScannerHome = tool name: 'SonarQubeScanner', type: 'hudson.plugins.sonar.SonarRunnerInstallation'
withEnv(["PATH=/usr/bin: ..."]) {
// Your call to Sonar
sh "${sonarqubeScannerHome}/bin/sonar-scanner -e -Dsonar.host.url=..."
}
我使用了来自“", but with Sonar 2.5, there is an official support of Jenkins pipeline:
的设置
def scannerHome = tool 'SonarQube Scanner 2.8';
withEnv(["PATH=/usr/bin: ..."]) {
withSonarQubeEnv('My SonarQube Server') {
sh "${scannerHome}/bin/sonar-scanner"
}
}
在sonar-scanner
脚本中,有这个块
if [ -n "$JAVA_HOME" ]
then
java_cmd="$JAVA_HOME/bin/java"
else
java_cmd="$(which java)"
fi
鉴于我的 JAVA_HOME
未设置,调用的脚本 which
和命令未安装在我的容器中。
作为解决方法,我设置了环境变量 JAVA_HOME
。
我想 运行 来自 Jenkins 管道的 SonarQube 扫描仪,我遵循了文档。
关于错误,似乎扫描仪存在,但找不到某些命令。我的詹金斯实例 运行s 在 docker.
中詹金斯版本: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
确保PATH完整,或者检查重置是否足够
def sonarqubeScannerHome = tool name: 'SonarQubeScanner', type: 'hudson.plugins.sonar.SonarRunnerInstallation'
withEnv(["PATH=/usr/bin: ..."]) {
// Your call to Sonar
sh "${sonarqubeScannerHome}/bin/sonar-scanner -e -Dsonar.host.url=..."
}
我使用了来自“
def scannerHome = tool 'SonarQube Scanner 2.8';
withEnv(["PATH=/usr/bin: ..."]) {
withSonarQubeEnv('My SonarQube Server') {
sh "${scannerHome}/bin/sonar-scanner"
}
}
在sonar-scanner
脚本中,有这个块
if [ -n "$JAVA_HOME" ]
then
java_cmd="$JAVA_HOME/bin/java"
else
java_cmd="$(which java)"
fi
鉴于我的 JAVA_HOME
未设置,调用的脚本 which
和命令未安装在我的容器中。
作为解决方法,我设置了环境变量 JAVA_HOME
。