jenkins - 如何使用变量从 LinkedHashMap 中检索值?
问题描述
我想创建允许我访问不同 YAML 结构的变量。
envFile 是 YAML 文件,包含如下数据:
ENVNAME:
MYSYS:
MYSUBSYS:
MYDETAIL:
version: 1.0.0
path: C:\wwwroot\sys
MYSYS2:
MYSUBSYS2:
version: 1.0.1
path: C:\wwwroot\sys2
重要的是 MYSYS2 没有 MYDETAIL 级别
在 Jenkins 管道中,我正在使用:
envs = readYaml file: envFile
然后我可以使用以下方法获取版本值:
verNum = envs."${environment}"."${sysName}"."${subSysName}"."${detailName}".version
但是当我想获得 MYSYS2 的版本时,我应该使用(无 detailName):
verNum = envs."${environment}"."${sysName}"."${subSysName}".version
所以我需要变量取决于 sysName..
我想使用如下语法:
if (sysName == 'MYSYS'){
mySuperVariable = "${environment}"."${sysName}"."${subSysName}"."${detailName}"
}
else if (sysName == 'MYSYS2'){
mySuperVariable = "${environment}"."${sysName}"."${subSysName}"
}
(...)
sysVer = envs."${mySuperVariable}".version
解决方案
如果我没记错的话,您可以通过map[key][sub-key]
. 因此,在您的情况下,它将是:
if (sysName == 'MYSYS'){
mySuperVariable = envs[environment][sysName][subSysName][detailName]
}
else if (sysName == 'MYSYS2'){
mySuperVariable = envs[environment][sysName][subSysName]
}
(...)
sysVer = mySuperVariable['version']
推荐阅读
- django - 如何从 Django 中的 forms.Form 类生成表单元素?
- javascript - SpeechSynthesisUtterance 引发合成失败错误
- python - 当输出本身出现时如何在 tkinter 中输出一些东西
- php - Dsetiny2 API,PHP OAuth 身份验证访问令牌无响应
- javascript - 短网址不适用于 Netlify 中的 fetch API,但可在本地服务器上使用
- apache - 将 nginx 重写转换为 apache 版本
- node.js - 如何在 url nestjs 中获取上传的文件
- angular - 如何缩小到谷歌地图api中的所有纬度和经度点?
- single-page-application - SPA AEM 中特定区域所需的动态标头体验片段
- php - 试图获取非对象的属性“id_pembelian”