Sbt 如何将配置文件作为打包的一部分复制到部署中?

Sbt 如何将配置文件作为打包的一部分复制到部署中?,sbt,sbt-native-packager,Sbt,Sbt Native Packager,我使用sbt 0.13.5构建了一个项目,其中包含一些配置文件,这些文件在部署后可以人工编辑 使用的stage命令构建用于部署的基本输出目录结构。这将产生一个带有开始脚本的bin文件夹,所有我的jar都位于lib文件夹中。太好了 这只会将应该复制到conf文件夹中的文本配置文件逐字保存在bin/和lib/文件夹中(不包括在任何jar中) 如何使用sbt将这些配置文件复制到文件系统上的输出目录(而不是任何JAR?我不确定是否支持src/main/conf目录或类似目录,除非您找到它,否则请使用以下

我使用sbt 0.13.5构建了一个项目,其中包含一些配置文件,这些文件在部署后可以人工编辑

使用的
stage
命令构建用于部署的基本输出目录结构。这将产生一个带有开始脚本的
bin
文件夹,所有我的jar都位于
lib
文件夹中。太好了

这只会将应该复制到
conf
文件夹中的文本配置文件逐字保存在
bin/
lib/
文件夹中(不包括在任何jar中)


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

我不确定是否支持
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
目录


注意:我非常确定我在哪里看到了对
conf
目录的支持。

这似乎是一个“更好”的答案,因为我将sbt与sbt本机packager插件一起使用:

mappings in Universal ++= contentOf(  baseDirectory.value / "conf" )
这将获取指定“conf”文件夹下的所有文件,并将它们转储到包根文件夹中


它使用了我在中偶然发现的映射Shelper,用于sbt原生打包机

默认的通用约定是复制src/univeral/下的文件/目录。因此,要在发行版中包含conf/目录,只需添加src/universal/conf并将配置文件复制到那里。信用证:

有趣的是,我昨晚的黑客行为与之类似:
在Universal++=PathFinder(baseDirectory(/“conf”).value)中的映射***.pair{x=>Option(x.name)}
我仍然希望文件复制任务是一个内置任务。我们采用的这种方法只是调整一个设置,该设置恰好包含sbt内部复制的文件。假设约定优于配置是一件好事,那么Khoa的答案甚至更好。