我想从Jenkins管道运行SonarQube扫描器,并且我遵循了文档。
关于该错误,似乎存在扫描仪,但找不到某些命令。我的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发布于 2017-04-28 20:14:49
在sonar-scanner脚本中,有以下代码块
if [ -n "$JAVA_HOME" ]
then
java_cmd="$JAVA_HOME/bin/java"
else
java_cmd="$(which java)"
fi由于我的JAVA_HOME未设置,所以这个名为which的脚本和命令没有安装在我的容器中。
作为变通方法,我设置了环境变量JAVA_HOME。
发布于 2017-04-27 04:27:33
请确保路径完整,或检查重置路径是否足够
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=..."
}我使用的是"Execute SonarQube Scanner within Jenkins 2 Pipeline“中的设置,但使用的是Sonar2.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"
}
}https://stackoverflow.com/questions/43643803
复制相似问题