如何使用环境变量覆盖类型安全配置中的数组



我一直在类型安全配置中使用环境变量替换功能:

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

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

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

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

在未定义f1f2的情况下,这只会导致foo为空数组。我的目标是产生与上述类似的效果(如果没有定义环境变量f1f2,则丢弃第二个foo)。任何想法/建议不胜感激。谢谢。

我发现在 HOCON 配置文件中使用 a = ${?VARNAME} 和 Scala 代码期望List,并使用-DVARNAME.0=something(或简单地VARNAME.0=something)将产生正确的["something"]值。(使用 Play 2.6.13 和允许的主机筛选器进行测试。

最新更新