运行SonarQube Scanner时,在Jenkins作业中找不到Java

时间:2017-11-24 13:16:51

标签: java jenkins sonarqube

我让Jenkins和Sonar在不同的Docker容器中运行。我想在Jenkins工作中运行Sonar分析,所以我安装了“SonarsQube Scanner for Jenkins”插件。

这是作业配置: Build configuration in Jenkins

运行构建时出现此错误:

[run-sonar] $ /var/jenkins_home/tools/hudson.plugins.sonar.SonarRunnerInstallation/my_SonarScanner/bin/sonar-scanner -e -Dsonar.host.url=http://localhost:9000 -Dsonar.projectBaseDir=/var/jenkins_home/workspace/run-sonar
/var/jenkins_home/tools/hudson.plugins.sonar.SonarRunnerInstallation/my_SonarScanner/bin/sonar-scanner: exec: line 73: /var/jenkins_home/tools/hudson.model.JDK/java8/bin/java: not found
ERROR: SonarQube scanner exited with non-zero code: 127
Finished: FAILURE
当作业第一次运行时,Jenkins安装了Java8。如果我登录到Jenkins容器并cd到该文件夹​​,它就存在。

1 个答案:

答案 0 :(得分:0)

我能够通过手动更改SonarQube尝试执行Java的路径来修复它。

/var/jenkins_home/tools/hudson.plugins.sonar.SonarRunnerInstallation/my_SonarScanner/bin/sonar-scanner 中,我删除了这些行:

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

并修复该变量以指向该容器上配置的$ JAVA_HOME。

java_cmd=/usr/lib/jvm/java-1.8-openjdk/bin/java