gpt4 book ai didi

sbt - 将/etc/ 添加到 debian :package-bin 的 sbt-native-packager 中的类路径

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

所以我正在使用 packageArchetype.java_server 并设置我的映射,以便来自“src/main/resources”的文件进入我的 debian 包中的“/etc/”文件夹。我正在使用“sbt debian:package-bin”来创建包

问题是当我使用“sbt run”时,它会从类路径中获取 src/main/resources。让 sbt-native-packager 将/etc/作为我的配置和日志文件的资源类路径的正确方法是什么?

插件.sbt:

addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "0.7.0-M2")

生成.sbt
...

packageArchetype.java_server

packageDescription := "Some Description"

packageSummary := "My App Daemon"

maintainer := "Me<me@example.org>"

mappings in Universal ++= Seq(
file("src/main/resources/application.conf") -> "conf/application.conf",
file("src/main/resources/logback.xml") -> "conf/logback.xml"
)

....

最佳答案

我采取了稍微不同的方法。由于 sbt-native-packager 将这两个文件(application.conf 和 logback.xml)保存在我的包分发 jar 文件中,我真的只是想要一种从/etc 覆盖(或合并)这些文件的方法。我保留了上面的两个映射,并添加了以下内容:

src/main/templates/etc-default:

 -Dmyapplication.config=/etc/${{app_name}}/application.conf
-Dlogback.configurationFile=/etc/${{app_name}}/logback.xml

然后在我的代码中(使用类型安全配置库):
lazy val baseConfig = ConfigFactory.load //defaults from src/resources

//For use in Debain packaging script. (see etc-default)
val systemConfig = Option(System.getProperty("myapplication.config")) match {
case Some(cfile) => ConfigFactory.parseFile(new File(cfile)).withFallback(baseConfig)
case None => baseConfig
}

当然 -Dlogback.configuration 是 Logback 使用的系统属性。

关于sbt - 将/etc/<application> 添加到 debian :package-bin 的 sbt-native-packager 中的类路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22466968/

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