2017-04-26 2 views
1

SonarQubeスキャナーをJenkinsパイプラインから実行したいと思います。SonarQubeスキャナーがコマンドが見つからないためにJenkinsパイプラインで失敗する

エラーについては、スキャナが存在しているようですが、コマンドが見つからないようです。私の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 

答えて

2

、このブロック

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

そして、私のJAVA_HOMEが未設定だった、whichと呼ばれるスクリプトやコマンドは私のコンテナ内に設置されていないことを考えるとがあります。

回避策として、env変数JAVA_HOMEを設定しました。

+0

これは私の答えよりも正確です。 +1 – VonC

0

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=..." 
} 

であるかどうかを確認「Execute SonarQube Scanner within Jenkins 2 Pipeline」からの設定ですが、Sonar 2.5ではthere is an official support of Jenkins pipeline

スクリプトで
関連する問題