Как получить доступ к значению динамической переменной в freemarker? - PullRequest
0 голосов
/ 12 июня 2019

У меня есть файл конфигурации gradle, который содержит конфигурацию в паре ключ-значение. например

aws.codedeploy.FunctionalEC2TagKey = "functionalEC2TagKey1"
aws.codedeploy.CapacityEC2TagKey = "capacityEC2TagKey1"

Я хотел бы прочитать эту конфигурацию в конце Freemarker и присвоить значение переменной.

Однако, какое значение ключа для получения является условным и определяется переменной freemarker "$ {stage.displayname}"

Теперь предположим - $ {stage.displayname} = "Функциональный" тогда aws.codedeploy.FunctionalTagKey должен быть выбран

Итак, То, что я хотел бы попробовать, это

key   =  "${aws.codedeploy.${stage.dispalyname}EC2TagKey}"

и он должен вернуть «functionsEC2TagKey1»

Я пытался настроить его как,

EC2_TAG_KEY ='${' + "aws.codedeploy.${stage.displayName}EC2TagKey" + '}'

, а затем,

key   = "${EC2_TAG_KEY}"

Это оценивается в

key = aws.codedeploy.FunctionalEC2TagKey

Может кто-нибудь помочь мне с этим?

Большое спасибо, Swapnil

1 Ответ

0 голосов
/ 12 июня 2019

Это будет ${aws.codedeploy[stage.displayName + "EC2TagKey"]} или эквивалент ${aws.codedeploy["${stage.displayName}EC2TagKey"]}, в зависимости от того, что вы предпочитаете. Это потому, что foo.bar - это то же самое, что и foo["bar"], а внутри [] вы можете иметь любое выражение, а не просто строковый литерал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...