首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HOCON:多个reference.conf解析问题

HOCON:多个reference.conf解析问题
EN

Stack Overflow用户
提问于 2015-07-29 11:02:06
回答 1查看 2.3K关注 0票数 9

我在SBT下有多模块项目。

Project A (库)有带有A配置参数的reference.conf文件,项目A依赖于带有自己的reference.conf文件的akka-actor库,Project A在自己的reference.conf中重新定义了akka的一些参数。

项目B依赖于A

当我在ConfigFactory.load()中调用B时,reference.conf的合并顺序是错误的。它首先接受A的配置,然后应用akka-actor的配置,最后,我得到了akka-actor的初始配置。

我怎么才能修好它?我需要先加载akka-actor的配置,然后应用A的配置。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-30 15:22:55

好的,看起来我在ConfigFactory的源代码中找到了答案。

所有的reference.conf都是通过ClassLoader.getResources加载的。它返回java.util.Enumeration[URL]。这个枚举中URLs的顺序是这个问题的答案。因此,您需要做的就是:确保您的reference.conf资源在这个枚举中的顺序是正确的。

下面是如何做到这一点的一个例子。首先,通过重写ClassLoader方法创建您自己的getResources版本:

代码语言:javascript
复制
import scala.collection.JavaConverters._

class CustomClassLoader(loader: ClassLoader) extends ClassLoader(loader){
    override def getResources(name: String): util.Enumeration[URL] = {
        val resources = super.getResources(name).asScala.toList
        // arrange resources as you wish here
        java.util.Collections.enumeration(resources.asJava)
    }
}

最后,使用load实例调用ConfigFactoryCustomClassLoader方法。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31698605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档