简短回答
定义一个包映射。
mappings in Universal <+= (packageBin in Compile, sourceDirectory ) map {
(_, src) =>
val conf = src / "main" / "resources" / "reference.conf"
conf -> "conf/application.conf"
}
在src/universal/conf中创建一个名为jvmopts的文件,其中包含:
-Dconfig.file=/<installation-path>/conf/application.conf
将其添加到 build.sbt 文件中
bashScriptConfigLocation := Some("${app_home}/../conf/jvmopts")
server_archetype的示例:
请参考示例应用程序。有一些描述可以在这里找到。
长篇回答
sbt-native-packager不直接支持更改classpath,因为它可能会引起问题,比如:
与Typesafe Config类似,大多数使用配置文件的库都提供了一个参数来定义配置文件的位置。请使用文档中描述的参数说明。
看起来您正在尝试运行一个服务器,这意味着您可以使用
packageArchetype.java_server
该工具旨在读取外部配置。请查看示例应用程序以了解如何使用它。
build.sbt
中,而不是创建src/universal/conf/jvmopts
文件:bashScriptExtraDefines += """addJava "-Dconfig.file=${app_home}/../conf/application.conf""""
这行代码的作用是向 Bash 脚本添加额外的 Java 参数,以便指定应用程序配置文件的位置。 - Trevbuild.sbt
中。batScriptExtraDefines += """call:add_java"-Dconfig.file=%APP_HOME%\conf\application.conf""""
- user5698801