gpt4 book ai didi

scala - 如何在scala sbt中获取资源文件夹下的加载文件

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

我在资源下有一个 akka actors 配置文件,

src/main/resources/remote_app.conf
src/main/scala/actors/Notification.scala

我正在加载如下资源,

1.

val configFile = getClass.getClassLoader.getResource("remote_app.conf").getFile
val config_mediation = ConfigFactory.parseFile(new File(configFile))
actorSystem = ActorSystem("MediationActorSystem", config_mediation)

2.

val path = getClass.getResource("/remote_app.conf").getFile
val config_mediation = ConfigFactory.parseFile(new File(path))
actorSystem = ActorSystem("MediationActorSystem", config_mediation)

当我从主程序执行并获取以下日志时,两者都工作正常,

[INFO] [11/21/2016 21:05:02.835] [main] [Remoting] Remoting started; listening on addresses :[akka.tcp://MediationActorSystem@127.0.0.1:7070] [INFO] [11/21/2016 21:05:02.838] [main] [Remoting] Remoting now listens on addresses: [akka.tcp://MediationActorSystem@127.0.0.1:7070]

我正在使用 sbt test:assembly 创建一个 jar 并执行如下主类SBT:

resourceDirectory in Compile := baseDirectory.value /"src/main/resources"
resourceDirectory in Test := baseDirectory.value /"src/main/resources"

java -cp <jar> <args>

当我从 jar 执行时,它无法加载配置文件。我做错了什么。

最佳答案

最简单的方法可能是使用类似 lightbend conf -library 的东西: https://github.com/lightbend/config

默认情况下,它会从 -resources 文件夹中选择 application.conf 文件。

import com.typesafe.config.ConfigFactory
val conf = ConfigFactory.load()

您还可以为加载函数提供其他文件名作为参数:

val conf = ConfigFactory.load("someother.conf")

注意:文件名前没有斜杠。

关于scala - 如何在scala sbt中获取资源文件夹下的加载文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40724082/

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