【问题标题】:ENV VAR in HOCON include statementHOCON 中的 ENV VAR 包含语句
【发布时间】:2016-01-06 22:52:12
【问题描述】:

我想做以下事情

include file(${HOME}/.oat/db_local_dev.conf)

不幸的是,它给出了以下错误:

Caused by: com.typesafe.config.ConfigException$Parse: /Users/XXXX/src/oat3/conf/shared.local.conf: 16: expecting a quoted string inside file(), classpath(), or url(), rather than: '${'HOME'}'

https://github.com/typesafehub/config 的文档并没有说要包含的参数必须是字符串,但我想我记得在过去的某个地方读过。

那么...有什么解决方法吗?如果没有,至少有人可以解释为什么这个限制在这里吗?某种安全漏洞?这是我能想到的省略这种有用功能的唯一原因。

谢谢。

【问题讨论】:

    标签: typesafe-config


    【解决方案1】:

    您不能动态包含另一个属性文件。

    include 语句由不带引号的字符串 include 组成 按空格,然后是:

    • 单引号字符串,试探性地解释为 URL, 文件名或类路径资源。
    • url()、file() 或 classpath() 包围带引号的字符串,然后将其解释为 URL、文件或类路径。字符串必须用引号引起来,这与 CSS 不同。
    • required() 围绕上述之一

    查看官方文档:https://github.com/lightbend/config/blob/master/HOCON.md#includes

    另见(功能请求:动态包含#122):https://github.com/lightbend/config/issues/122

    【讨论】:

    • 感谢您提供指向问题列表的链接,了解为什么不支持此功能。
    【解决方案2】:

    一个有效的语法是

    include "file://${HOME}/.oat/db_local_dev.conf"
    

    使用显式 UR 来引用配置文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-12-21
      • 2014-06-14
      • 2011-02-13
      • 2021-10-30
      • 1970-01-01
      • 2013-10-18
      • 1970-01-01
      相关资源
      最近更新 更多