gpt4 book ai didi

java - Jenkins Pipeline env.JAVA_HOME 与 sh printenv 不同

转载 作者:太空宇宙 更新时间:2023-11-04 09:04:25 25 4
gpt4 key购买 nike

Jenkins 2.2024.2
Kubernetes插件1.22.0

env.JAVA_HOME 变量设置的值与 sh 'printenv' 显示的值不同。我原以为 env 是环境的反射(reflect)。我也找不到 env.JAVA_HOME 设置的位置。它不反射(reflect)全局 JDK 配置中的值。我还 grep 了 openjdk 的 Jenkins Master 根目录,只找到了正确的值。

bash-4.4# grep openjdk *
config.xml: <home>/usr/local/openjdk-8/jre</home>

这是演示该行为的管道。

pipeline {
agent {
kubernetes { label 'java8-mvn3' }
}

stages {
stage('test') {
steps {
container ('java8-mvn3') {
echo env.JAVA_HOME
echo "++++++++++++++++++++++++++"
sh 'printenv | grep JAVA_HOME'
}
}
}
}
}

** 输出 **

[Pipeline] echo
/usr/lib/jvm/java-1.8-openjdk
[Pipeline] echo
++++++++++++++++++++++++++
[Pipeline] sh
+ printenv
+ grep JAVA_HOME
JAVA_HOME=/usr/local/openjdk-8

最佳答案

根据手册页:http://man7.org/linux/man-pages/man1/printenv.1.html

   NOTE: your shell may have its own version of printenv, which usually
supersedes the version described here. Please refer to your shell's
documentation for details about the options it supports.

因此,您可能需要使用特定的 shell,例如 sh '''#!/bin/bash -c ...

或者作为另一种选项导出全局/阶段定义环境级别所需的选项

关于java - Jenkins Pipeline env.JAVA_HOME 与 sh printenv 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60397789/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com