gpt4 book ai didi

HOCON: 多个reference.conf 解析问题

转载 作者:行者123 更新时间:2023-12-04 03:50:28 25 4
gpt4 key购买 nike

我在 SBT 下有多模块项目。

项目 A (图书馆)有reference.conf带有 A 的文件的配置参数。项目 A取决于 akka-actor库,它自带 reference.conf文件。项目 A重新定义了一些 akka自己的参数reference.conf .

项目 B取决于 A .

当我调用 ConfigFactory.load()B ,我的 reference.conf 的顺序有误s 合并。首先需要A的配置,然后应用 akka-actor的配置。最终,我得到了初始 akka-actor的配置。

我该如何解决?我需要得到 akka-actor的配置首先加载,然后是我的 A的配置应该应用在它上面。

最佳答案

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

所有reference.conf正在通过 ClassLoader.getResources 加载.它返回 java.util.Enumeration[URL] . URL的顺序这个枚举中的 s 是问题的答案。所以您需要做的就是:确保您的reference.conf 的顺序。本次列举的资源安排妥当。

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

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 ConfigFactory的方法与您的 CustomClassLoader实例。

关于HOCON: 多个reference.conf 解析问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31698605/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com