如何使用环境变量覆盖Typesafe配置中的数组?

时间:2017-01-09 21:49:18

标签: typesafe typesafe-config

我一直在使用Typesafe配置中的environment variable substitution功能:

foo = "foo"
foo = ${?FOO}

这导致"默认"价值" foo"如果没有名为FOO的环境变量。在这种情况下,第二个值声明(foo = ${?FOO}被简单地丢弃)。但是,如果存在名为FOO的变量,则库将"替换" FOO的值,并将其分配给foo

我希望与数组类似,但不幸的是,这不能按预期工作:

foo = [ "1", "2" ]
foo = [ ${?f1}, ${?f2} ]

如果未定义f1f2,则只会导致foo为空数组。我的目标是获得与上面类似的效果(如果没有定义环境变量foof1,则丢弃第二个f2)。任何想法/建议表示赞赏。感谢。

1 个答案:

答案 0 :(得分:2)

我发现,在HOCON配置文件中使用cd /vobs/proj/dita并在Scala代码中期望a = ${?VARNAME}的情况下使用List(或简单地-DVARNAME.0=something)将得到正确的结果VARNAME.0=something值。 (在Play 2.6.13和AllowedHosts过滤器中进行了测试。)