首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >由于找不到命令,SonarQube扫描程序在Jenkins管道中失败

由于找不到命令,SonarQube扫描程序在Jenkins管道中失败
EN

Stack Overflow用户
提问于 2017-04-27 04:19:27
回答 2查看 9.4K关注 0票数 2

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

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

Jenkins版本: 2.46.1

SonarQube扫描仪: 2.6.1

代码语言:javascript
复制
+ /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
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-28 20:14:49

sonar-scanner脚本中,有以下代码块

代码语言:javascript
复制
if [ -n "$JAVA_HOME" ]
then
  java_cmd="$JAVA_HOME/bin/java"
else
  java_cmd="$(which java)"
fi

由于我的JAVA_HOME未设置,所以这个名为which的脚本和命令没有安装在我的容器中。

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

票数 2
EN

Stack Overflow用户

发布于 2017-04-27 04:27:33

请确保路径完整,或检查重置路径是否足够

代码语言:javascript
复制
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

代码语言:javascript
复制
def scannerHome = tool 'SonarQube Scanner 2.8';
withEnv(["PATH=/usr/bin: ..."]) {
  withSonarQubeEnv('My SonarQube Server') {
    sh "${scannerHome}/bin/sonar-scanner"
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43643803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档