powershell - 在 Jenkins 构建的 Windows Powershell 中设置的变量,在其他构建步骤中不可用
问题描述
我有一个带有一个名为 VERSION 的参数的 Jenkins 版本。
根据变量的长度,我在 Windows Powershell 中修改它的值,然后在下一个构建步骤中,我想使用它。
但是修改后的值并没有反映在下一个构建步骤执行中,它仍然引用作为参数输入的初始值。我试过 ENV,script,global 它们似乎都不起作用。
Windows PowerShell 构建步骤
输入 VERSION=1810(通过 jenkins 构建)
if ("$ENV:VERSION".length -eq 4)
{
$ENV:VERSION = "$ENV:VERSION",3 -join "" (here it will be 18103)
}
Write-Output "$ENV:VERSION" (18103 here aswell)
稍后在 Nexus 工件上传器中,我将此变量称为 ${VERSION} 并且没有反映上述更新值
(here it is 1810 and not 18103)
请帮忙
解决方案
这是环境变量范围的一般问题。每个进程都从其父进程继承环境变量,但有自己的副本,您所做的任何修改只会反映在当前进程和子进程中。
我认为您必须找到某种方法将值传递给不依赖环境变量的未来步骤。
推荐阅读
- php - 使用 Apache 设置 Symfony
- c# - 查找字符数组中的第一个不同字符及其索引
- vuex-orm - 使用“vuex-orm-decorators”时出现“TypeError:this.types 不是函数”
- ios - iOS中的Ionic 4 Http请求失败
- c# - 具有不变名称“System.Data.SqlClient”的 ADO.NET 提供程序未注册
- facebook-graph-api - 如何获取授予事件端点权限的 Facebook 访问令牌?
- bash - 如何从任何文件夹运行我的 bash 脚本
- c++ - 为什么要调用复制构造函数来构造空的 unique_ptr 向量?
- php - 如何从 PHP 脚本启动 Minecraft 服务器
- assembly - @ 和 # 在 ARM 汇编语言中是什么意思?