blo*_*loo 4 bash scala config sbt sbt-native-packager
我的项目使用sbt-native-packager和packageArchetype.java_application.在sbt阶段,我有一个生成一些最终的Typesafe样式配置文件的任务,然后我将其复制到:
target/universal/stage/conf/application.conf
Run Code Online (Sandbox Code Playgroud)
我想将此目录添加到bash脚本中的运行时类路径中,并且正在寻找最简单的方法.我讨厌维护一个单独的src/main/templates/bash-template用于这么简单的事情,而且我不知道如何去做.
谢谢!
Muk*_*uki 10
简答
定义包映射
mappings in Universal <+= (packageBin in Compile, sourceDirectory ) map {
(_, src) =>
// we are using the reference.conf as default application.conf
// the user can override settings here
val conf = src / "main" / "resources" / "reference.conf"
conf -> "conf/application.conf"
}
Run Code Online (Sandbox Code Playgroud)
创建jvmopts在SRC /通用/ conf目录与
-Dconfig.file=/<installation-path>/conf/application.conf
Run Code Online (Sandbox Code Playgroud)
添加到build.sbt
bashScriptConfigLocation := Some("${app_home}/../conf/jvmopts")
Run Code Online (Sandbox Code Playgroud)
server_archetype的示例:按照示例应用程序进行操作.这里可以找到一些描述.
答案很长
sbt-native-packager不直接支持更改类路径,因为它可能会导致类似问题
与Typesafe Config一样,大多数使用配置文件的库都提供了一个参数来定义配置文件的位置.使用文档中描述的参数.
看来你正在尝试运行服务器,这意味着你可以使用
packageArchetype.java_server
Run Code Online (Sandbox Code Playgroud)
它旨在读取外部配置.看一下示例应用程序如何使用它.
以下设置:
scriptClasspath in bashScriptDefines ~= (cp => "../conf" +: cp),
Run Code Online (Sandbox Code Playgroud)
允许您完全执行所需的操作。
在此特定示例中,我将“ ../conf”目录添加到类路径条目中。
另外,您需要将以下配置密钥导入到构建SBT:
import com.typesafe.sbt.packager.Keys.bashScriptDefines
import com.typesafe.sbt.packager.Keys.scriptClasspath
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2233 次 |
| 最近记录: |