当前位置: 首页 > 知识库问答 >
问题:

scala类型安全配置-如何从类路径而不是从顶级资源加载conf文件

常朗
2023-03-14

我正在我的一个项目中使用scala typesafe config(版本1.2.1)来读取application.conf文件,我的项目依赖于多个其他项目,并且我创建了一个具有依赖项的jar来运行依赖项项目。

问题--这些项目也使用typesafe并且在顶级目录中有application.conf文件,而我的maven jar具有依赖项,在同一个类路径中只获取一个application.conf,并删除其余的文件(我尝试使用maven shade插件合并这些conf文件,但我不想走这条路)。我正在尝试将这些application.conf文件放置在包中,这样它们就不会在带有依赖项的jar中被覆盖,但是typesafe似乎无法识别resources目录中包名下的文件,它只能在放置在顶级resources目录下时找到conf文件。

是否有更好的解决方案通过使用typesafe来实现这一点?或者我愿意为scala使用完全不同的配置库(如果有的话)。

共有1个答案

蒋高杰
2023-03-14

给定这样的文件结构:

$tree src/main/resources/
 src/main/resources
 └── path
     └── to
         └── file
             └── xxx.conf

您可以使用以下命令加载配置:

scala prettyprint-override">val config = ConfigFactory.load("path/to/file/xxx.conf")
 类似资料:
  • 我正在尝试将资源csv文件传递到我的Sprint Boot应用程序使用的jar中。尽管方法获取的资源参数=ReactiveWebContext资源[src/main/Resources/file.csv],但我总是得到该文件不存在的响应 > 在我的项目中,文件位于src/main/resources/file中。csv 正在应用中。属性,我定义: 在config类中: 在内部jar:Config类

  • 问题内容: 在Java中,您可以使用相同的API,但使用不同的URL协议来加载各种资源: 这很好地将资源的实际加载与需要资源的应用程序分离开来,并且由于URL只是一个字符串,因此资源加载也很容易配置。 是否有使用当前类加载器加载资源的协议?这类似于Jar协议,除了我不需要知道资源来自哪个jar文件或类文件夹。 我当然可以使用来做到这一点,但这需要我使用不同的API,因此需要对现有代码进行更改。我希

  • 问题内容: 以下是一些代码片段,这些片段指示我目前正在尝试什么,但是它不可靠。原则上,我认为因为您只能注册一次协议处理程序,偶尔其他库可能会先这样做。 xml-catalog.xml包含: 显然-xsd文件位于类路径中的正确位置。 问题答案: 解析器使用以下最小代码集来正常运行: 您可以选择将其指定为JVM参数: 该班是实现如下: 在请求资源时,使用正斜杠()很重要,这已由以下 堆栈溢出 问题回答

  • 问题内容: 我正在使用一些第三方代码,这些代码在给定“ -classpath”命令行参数时不会设置java.class.path,而是仅创建一个类加载器,将命令行中指定的类路径中所有项的所有url添加到类加载器,然后将其设置为上下文类加载器。在我编写的此代码的插件类中,我获得了该类加载器的实例,并且需要以某种方式使用它来获取基础类路径,以便可以在JavaCompiler.getTask(… ),并

  • 问题内容: 如何在netbeans项目的类路径中添加文件夹(例如,包含arts的资源文件夹)?我设法通过编辑项目的NB生成的jar文件(即其MANIFEST.MF文件+手动复制资源)来手动完成此操作,但是应该有一种方法可以告诉netbeans并注意资源,不是吗? 文件夹结构如下所示: 我不想将艺术品包装到罐子里,因为我希望艺术品可以轻松更换。如果我将art文件夹添加到src文件夹,则NB可以正常编

  • 我正在使用最新版本的spring boot和spring cloud config。当我用应用程序启动应用程序时。属性,它工作正常。但是,当我从引导开始时。yml文件,它从Spring cloud下载所有道具,并加载应用程序。类路径中的属性。Spring的云就是这样运作的吗?是否可以将Spring云配置客户端配置为仅从远程云配置而不是从应用程序读取属性。类路径中的属性。 我正在使用, --Spri