【问题标题】:Typesafe Config: How resource files get mergedTypesafe Config:资源文件如何合并
【发布时间】:2017-11-12 01:53:02
【问题描述】:

我无法理解在 Typesafe Config 中合并资源文件的机制。

根据 Typesafe 配置documentation

便捷方法 ConfigFactory.load() 加载以下内容 (首先列出的优先级较高):

  • 系统属性
  • application.conf(类路径上所有资源同名)
  • application.json(类路径上所有资源同名)
  • application.properties(类路径中具有此名称的所有资源)
  • reference.conf(类路径上所有具有此名称的资源)

假设我有两个模块:ab,模块a 依赖于模块b

lazy val a = (project in file("a"))
  ...
  .dependsOn(b % "compile->compile;test->test")

如果两个模块都有一个资源文件reference.conf,它们将如何合并?

它是附加的吗?是这样,它是如何解决冲突的?

【问题讨论】:

    标签: scala typesafe-config


    【解决方案1】:

    我相信它们以相反的类路径顺序覆盖(找不到文档来确认这一点)。

    classpath: a.jar;b.jar;
    
    -> 
    
    b reference.conf will be loaded first and then overridden by a reference.conf
    

    这使它与读取 .properties 文件的方式一致,将使用类路径中的第一个。

    我认为明确说明您的覆盖是个好主意,无论是通过编程方式还是按预期使用 reference.conf 和 application.conf。

    【讨论】:

      猜你喜欢
      • 2011-07-29
      • 2016-01-16
      • 1970-01-01
      • 1970-01-01
      • 2014-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-12
      相关资源
      最近更新 更多