如何在groovy中的map变量中声明map并在jenkinsfile中调用它

问题描述

我想在我的 constants.groovy 中为不同类型的环境声明映射变量:

  1. 测试
  2. 预生产
  3. 生产

对于每一个,我都想拥有自己的 URL 和 Jenkins 用户凭证。 在管道本身将有一个选择参数,用户必须在其中选择环境类型。 构建开始后,管道将知道如何为用户选择拉取 URL 和 Cred。知道怎么做吗?首先,我认为 This 可以提供帮助

更新

我得到了问题的答案,但在上面添加一个: 我怎么能在 map 里面做 map 在这里?假设用户选择了 TEST,我希望它有 3 种类型的服务器:sqlSSISSSRS。 这是正确的代码吗:

Map myMap = [
    TEST:[sql_URL:'',SSIS_URL: '',SSRS_URL: ''],credential,PREPROD:[sql_URL:'',PROD:[sql_URL:'',credential
    ] as ConfigObject
def props = myMap.toProperties()

props [ env.environment_type ].sql_URL
props [ env.environment_type ].SSIS_URL
props [ env.environment_type ].credential

解决方法

不确定你想要什么,但你可以像这样在 Groovy 中声明一个地图文字:

Map myMap = [
    TEST:[ SQL_URL:'',SSIS_URL: '',SSRS_URL: '',credential:'' ],'PRE-PROD':[ SQL_URL:'',PROD:[ SQL_URL:'',]

注意 PRE-PROD 周围的单引号