【问题标题】:Java not found in Jenkins job when running SonarQube Scanner运行 SonarQube Scanner 时在 Jenkins 作业中找不到 Java
【发布时间】:2018-05-08 12:30:24
【问题描述】:

我让 Jenkins 和 Sonar 在不同的 Docker 容器中运行。我想在 Jenkins 作业中运行声纳分析,所以我安装了“SonarQube Scanner for 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 到该文件夹​​,它就存在。

【问题讨论】:

  • 用 Java 7、8 和 9 试过,都报同样的错误。
  • 您使用哪个图像?你如何运行它?我刚刚检查了jenkins官方图片,你的java路径(/var/jenkins_home/tools/hudson.model.JDK/java8/bin/java)存在。
  • 如果您在 cmd 或 shell 上运行声纳扫描仪,请确保在设置 JAVA_HOME 环境后请打开一个新终端,否则更改不会反映,如果您在 bin 中一直找不到 java \bash 错误。

标签: java jenkins sonarqube


【解决方案1】:

我可以通过手动更改 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

【讨论】:

    猜你喜欢
    • 2019-06-02
    • 2016-11-02
    • 1970-01-01
    • 2018-06-13
    • 1970-01-01
    • 2018-07-09
    • 2022-10-08
    • 2015-12-03
    • 1970-01-01
    相关资源
    最近更新 更多