Dictionary 如何在groovy的map变量中声明map并在Jenkins文件中调用它
我想在我的constants.groovy中为不同类型的环境声明映射变量:Dictionary 如何在groovy的map变量中声明map并在Jenkins文件中调用它,dictionary,groovy,jenkins-pipeline,constants,Dictionary,Groovy,Jenkins Pipeline,Constants,我想在我的constants.groovy中为不同类型的环境声明映射变量: 试验 预生产 刺激 对于每一个,我希望有自己的URL和Jenkins用户凭证。 在管道本身将有一个选择参数,用户将不得不选择环境的种类。 一旦构建开始,管道将知道如何提取URL和Cred供用户选择。你知道怎么做吗?首先,我想我能帮上忙 更新 我得到了问题的答案,但在上面加了一个: 我如何在这里map内部map呢?假设用户选择了TEST,我希望它有3种类型的服务器:SQL,SSIS,SSRS。 这是正确的代码吗 Map m
map
内部map
呢?假设用户选择了TEST
,我希望它有3种类型的服务器:SQL
,SSIS
,SSRS
。
这是正确的代码吗
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
Tnx周围的单引号。因此,在我的jenkinsfile.groovy
中正确使用它可以是:例如:load(“constants.groovy”);myMap['env.env.env.environment\u type'].url
right?带引号的映射键:myMap[env.environment\u type]。url
btw是字符串类型的env.environment\u type
?几乎正确。您不能将凭据留在外部(编译错误)。propper值应该是[SQL\u URL:'',SSIS\u URL:'',SSRS\u URL:'',凭据:'',
我不知道ConfigObject是什么。对于您在问题中描述的用例,简单的groovy映射文字就足够了。