我使用sbt 0.13.5构建一个项目,其中包含一些配置文件,这些文件在部署后需要进行人工编辑。
使用sbt-native-packager' stage
命令构建我的基本输出目录结构以进行部署。这会产生一个bin
文件夹,其中包含一个启动脚本以及lib
文件夹中的所有jar文件。大。
只留下应该复制到conf
文件夹的文本配置文件,并且bin/
和lib/
文件夹(未包含在任何jar 中) )。
如何使用sbt将这些配置文件复制到文件系统的输出目录(而不是任何jar)?
答案 0 :(得分:3)
我不确定对src/main/conf
目录或类似目录的开箱即用支持,除非您找到它,否则请使用以下方法作为解决方法:
packageArchetype.java_application
mappings in Universal ++= {
((sourceDirectory in Compile).value / "conf" * "*").get.map { f =>
f -> s"conf/${f.name}"
}
}
它将文件中的src/main/conf
下的文件映射到conf
目录。
注意:我很确定我已经在the code conf
目录中看到某处。
答案 1 :(得分:2)
默认通用约定是在src / univeral /下复制文件/目录。因此,要在分发中包含conf /目录,只需添加src / universal / conf并在那里复制配置文件。信用:this link
答案 2 :(得分:1)
这似乎是一个更好的'回答,因为我正在使用sbt和sbt-native-packager插件:
mappings in Universal ++= contentOf( baseDirectory.value / "conf" )
这将获取指定" conf"下的所有文件。文件夹并将它们转储到包根文件夹中。
使用 MappingsHelper 我在sbt-native-packager中偶然发现了very terse documentation。