gpt4 book ai didi

jenkins - 脚本化管道设置和访问环境变量

转载 作者:行者123 更新时间:2023-12-02 16:09:40 25 4
gpt4 key购买 nike

我正在使用脚本化的 Jenkins Pipeline 来执行我的构建。我的阶段之一使用参数调用 ant 来构建可执行文件。我读到我可以使用 withEnv 步骤来传递变量:

node(this.JENKINS_NODE_LABEL) {
withEnv ([
'JAVA1_8 = /usr/lib/jvm/java-1.8.0-openjdk',
'ANT_HOME = ant-1.7.1',
'ANT_OPTS = -Xmx512m',
'PATH = $ANT_HOME/bin:$PATH',
'COMPONENT_NAME = SampleName'
]) {
buildComponent()
}
}

buildComponent 阶段是在一个附加文件中定义的,它仅包含一个执行构建的步骤:

def call() {
stage('Build Component') {
sh 'ant -Dcomponent=$COMPONENT_NAME'
}
}

但是,当我执行它时,我收到一个异常,即 ant 无法识别,并且作为组件传递的值为空。我也尝试使用 env.COMPONENT_NAME 但没有运气。我应该如何设置和访问脚本管道内的环境变量?

最佳答案

我不确定这是否能完全解决您的问题,但我相信这是第一个问题:您需要删除环境变量字符串中 = 两侧的空格。它是一个字符串列表,而不是键到值的映射,因此它将按原样传递到 shell,类似于在 shell 中手动运行命令时将环境变量传递给命令的方式,例如:

MYVAR=value /usr/bin/mycommand

而不是

MYVAR = value /usr/bin/mycommand

管道脚本中的基本示例 - 以下将打印 world:

withEnv(['HELLO=world']) {
print env.HELLO
}

但这会打印 null,因为 = 两边都有空格:

withEnv(['HELLO = world']) {
print env.HELLO
}

关于jenkins - 脚本化管道设置和访问环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49853600/

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