sbt-native-packager 打包项目的依赖找不到配置值
sbt-native-packager packaged project's dependency fails to find config value
我有一个 Scala 项目有很多依赖项。其中之一需要的设置不在其自身的 application.conf 中,而是在其他依赖项的 application.conf 中。当我 运行 带有 sbt run
的项目时,一切都很好,但是,当我 运行 来自 target/universal/stage/bin 的打包 deb 服务或 bin 脚本时,我得到一个错误:com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'roadmaps'
。两个依赖项在其 jar 中的 application.conf 中具有此设置。当我将设置从 application.conf 移动到 reference.conf 并重新发布依赖项,然后重新打包我的项目时,打包版本有效。
那么,为什么我的设置没有从依赖项 jar 中的 application.conf 中提取,为什么我应该将库配置保留在 reference.conf 中,除了它在配置文件中的优先级最低这一事实?
-Dconfig.trace=loads
帮我找到了答案。当我 sbt run
一个项目 dependsOn
其他项目时,它首先加载它自己的 application.conf
,然后那些打包在它的直接依赖项的 jar 中(这是 'roadmaps'
设置的来源),然后 reference.conf
s 的依赖项。当我将 bashScriptExtraDefines += """addJava "-Dconfig.file=${app_home}/../conf/application.conf""""
添加到 build.sbt 时,使用 stage
和 运行 将项目从 target/universal/stage/bin
中的脚本打包,它只加载指定的 application.conf
然后继续 reference.conf
s.
我有一个 Scala 项目有很多依赖项。其中之一需要的设置不在其自身的 application.conf 中,而是在其他依赖项的 application.conf 中。当我 运行 带有 sbt run
的项目时,一切都很好,但是,当我 运行 来自 target/universal/stage/bin 的打包 deb 服务或 bin 脚本时,我得到一个错误:com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'roadmaps'
。两个依赖项在其 jar 中的 application.conf 中具有此设置。当我将设置从 application.conf 移动到 reference.conf 并重新发布依赖项,然后重新打包我的项目时,打包版本有效。
那么,为什么我的设置没有从依赖项 jar 中的 application.conf 中提取,为什么我应该将库配置保留在 reference.conf 中,除了它在配置文件中的优先级最低这一事实?
-Dconfig.trace=loads
帮我找到了答案。当我 sbt run
一个项目 dependsOn
其他项目时,它首先加载它自己的 application.conf
,然后那些打包在它的直接依赖项的 jar 中(这是 'roadmaps'
设置的来源),然后 reference.conf
s 的依赖项。当我将 bashScriptExtraDefines += """addJava "-Dconfig.file=${app_home}/../conf/application.conf""""
添加到 build.sbt 时,使用 stage
和 运行 将项目从 target/universal/stage/bin
中的脚本打包,它只加载指定的 application.conf
然后继续 reference.conf
s.