Доступ к карте из другого файла jenkins и получение ключа - PullRequest
0 голосов
/ 25 июня 2018

У меня есть constants.groovy, как показано ниже

import groovy.transform.Field

@Field
def emailDistributionList = ['catalogSuccess':'ccc@ff.com, fff.ddd@gmail.com', 'catalogFailure':'fffee@ofr.com']

return this;

Теперь у меня есть основной сценарий конвейера Jenkins, как показано ниже

node ('node1') {
    stage("Read Constants") {
        script {
           def constants = evaluate readTrusted('jenkins_pipeline/constants.groovy')
           def catalogDistributionList = "${constants.emailDistributionList}"
           echo "${catalogDistributionList}"
           def successList = "${catalogDistributionList.catalogSuccess}"
           echo "${successList}"
        }
    }
}

Теперь сначала echo печатает Field изфайл констант успешно.Но когда я пытаюсь прочитать ключ и распечатать его, используя второй echo, он выдает ошибку

groovy.lang.MissingPropertyException: No such property: catalogSuccess for class: org.codehaus.groovy.runtime.GStringImpl

Я думаю, что он читает Field из constants.groovy как String, а не какMap

1 Ответ

0 голосов
/ 25 июня 2018

Я понял это.

Мы не можем прочитать map в переменную и затем получить key.Вместо этого все должно быть сделано одним выстрелом.

Это должно быть сделано таким образом

def catalogDistributionList = "${constants.emailDistributionList.catalogSuccess}"

...