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

How to declare map in map variable in groovy and call it in jenkinsfile

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

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

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

更新

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

Map myMap = [
    TEST:[SQL_URL:'', SSIS_URL: '', SSRS_URL: ''], credential,
    PREPROD:[SQL_URL:'', SSIS_URL: '', SSRS_URL: ''], credential,
    PROD:[SQL_URL:'', SSIS_URL: '', SSRS_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:'', SSIS_URL: '', SSRS_URL: '', credential:'' ],
    PROD:[ SQL_URL:'', SSIS_URL: '', SSRS_URL: '', credential:'' ],
]

注意 PRE-PROD

周围的单引号