首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkinsfile中的多维数组(Groovy)

问Jenkinsfile中的多维数组(Groovy)
EN

Stack Overflow用户
提问于 2017-04-24 08:44:43
回答 1查看 8.8K关注 0票数 2

我想在Jenkinsfile中声明一个多维数组,该数组保存针对不同环境的部署数据。在PHP中,我将声明如下:

代码语言:javascript
复制
$deployData = [];

$deployData['test']['user'] = 'testuser';
$deployData['test']['host'] = 'testhost';
$deployData['test']['path'] = 'testpath';

$deployData['acceptance']['user'] = 'accuser';
$deployData['acceptance']['host'] = 'acchost';
$deployData['acceptance']['path'] = 'accpath';

$deployData['production']['user'] = 'produser';
$deployData['production']['host'] = 'prodhost';
$deployData['production']['path'] = 'prodpath';

如何在Jenkinsfile (Groovy)中实现相同的结果?我尝试创建一个新的字符串数组:

代码语言:javascript
复制
def deployData = new String[3][3][1]

deployData['test']['user'] = 'testuser'
deployData['test']['host'] = 'testhost'
deployData['test']['path'] = 'testpath'

deployData['acceptance']['user'] = 'accuser'
deployData['acceptance']['host'] = 'acchost'
deployData['acceptance']['path'] = 'accpath'

deployData['production']['user'] = 'produser'
deployData['production']['host'] = 'prodhost'
deployData['production']['path'] = 'prodpath'

在Jenkins中运行上述代码时,我得到了以下错误:

java.lang.IllegalArgumentException:参数类型不匹配

全跟踪:https://pastebin.com/ZEBRFuAW

有人知道如何创建像第一个PHP示例那样的多维数组(包括相同的可读性值分配)吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-24 09:27:34

那不是一个数组,那是一张地图。您可以在一行中创建一个这样的代码:

代码语言:javascript
复制
def deployData = [test:       [user: 'testuser',
                               host: 'testhost',
                               path: 'testpath'],
                  acceptance: [user: 'accuser',
                               host: 'acchost',
                               path: 'accpath'],
                  production: [user: 'produser',
                               host: 'prodhost',
                               path: 'prodpath']]

或者:

代码语言:javascript
复制
def deployData = [:]

deployData.test       = [user: 'testuser', host: 'testhost', path: 'testpath']
deployData.acceptance = [user: 'accuser',  host: 'acchost',  path: 'accpath']
deployData.production = [user: 'produser', host: 'prodhost', path: 'prodpath']
票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43583491

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档