【问题标题】:YAML reference another variable in another fileYAML 引用另一个文件中的另一个变量
【发布时间】:2014-05-03 14:23:36
【问题描述】:

假设我有 2 个 YAML 文件:

1) application.yml

en:
  variable: "Hello World"

2) 用户.yml

en:
  variable: <Here I want to get value from application.yml -> "Hello World" >

起初我认为我可能会使用引用:

1) application.yml

en:
  variable: &variable "Hello World"

2) 用户.yml

en:
  variable: *variable

但事实证明,只有在一个文件中声明的项目才有可能。 有什么方法可以从 application.yml 中定义的变量中获取值?

【问题讨论】:

  • 不,我不认为 YAML 可以做到这一点。
  • @RobertKrzyzanowski 谢谢你的回答。那么唯一的方法是创建另一个保存共享值的第三个文件?还是使用“application.yml”中的值?对吗?
  • 正确! YAML 引用是文件内的。您还可以有一个预处理步骤来合并 YAML 文件。
  • 那么好。正如我所怀疑的那样。谢谢!
  • 这在 YAML 标签语义下在技术上是可行的。您必须创建一个自定义标签。参见例如 stackoverflow.com/questions/2063616stackoverflow.com/a/23212501/42223

标签: string reference yaml transclusion


【解决方案1】:

因此,唯一的方法是创建另一个保存共享值的第三个文件。 或者使用“application.yml”中的值。

YAML 引用是文件内的。

您还可以有一个预处理步骤来合并 YAML 文件。

在 *nix shell 中:

cat foo.yaml bar.yaml > baz.yaml

在 Powershell 中:

cat foo.yaml, bar.yaml > baz.yaml

批量:

type foo.yaml bar.yaml > baz.yaml

参考文献

【讨论】:

  • 谢谢,@Paul Sweatte!顺便说一句,您能否展示如何合并 YAML 文件。如何运行此预处理?再次感谢!
  • 我添加了一些使用各种语言进行合并的方法。
  • 谢谢!非常感谢!
猜你喜欢
  • 2020-05-21
  • 1970-01-01
  • 1970-01-01
  • 2016-02-25
  • 1970-01-01
  • 2014-02-22
  • 1970-01-01
  • 2020-04-21
  • 2020-09-15
相关资源
最近更新 更多