如何将配置文件作为打包的一部分进行复制以用于部署?

时间:2014-08-17 23:54:57

标签: sbt sbt-native-packager

我使用sbt 0.13.5构建一个项目,其中包含一些配置文件,这些文件在部署后需要进行人工编辑。

使用sbt-native-packager' stage命令构建我的基本输出目录结构以进行部署。这会产生一个bin文件夹,其中包含一个启动脚本以及lib文件夹中的所有jar文件。大。

只留下应该复制到conf文件夹的文本配置文件,并且bin/lib/文件夹(未包含在任何jar 中) )。

如何使用sbt将这些配置文件复制到文件系统的输出目录(而不是任何jar)?

3 个答案:

答案 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