【发布时间】:2014-05-21 01:43:27
【问题描述】:
我有以下场景,我有一些通用文本文件(配置文件模板),许多项目需要将其作为构建的一部分包含在内
最简单的方法是将该文件放在某个项目的main/resources 文件夹中,并通过依赖项包含该项目。
但是我需要该文件不只是在类路径中,它需要在类路径之外的文件夹中,例如/配置
我知道我可以使用映射选项,并且我知道映射的右侧,但左侧是什么?
例如
libraryDependencies += //some project that has /main/resouces/foo.conf in it
mappings in Universal += classpathToFile("main/resources/foo.conf) -> "conf/foo-external.conf"
我应该用什么代替classpathToFile?
编辑: 我想我可以遍历整个类路径,例如
mappings in Universal ++= {
val cp: Seq[File] = (fullClasspath in Runtime).value.files
cp.filter(_.name.endsWith(".conf")).map(f => f -> "bin/" + f.name)
}
但我不确定这是不是最好的方法...
【问题讨论】:
-
如果文件在您进行映射的当前项目之外,它很可能是 jar 的一部分,不是吗?那样你就找不到路径了。
-
这只是一个猜测,但您似乎正在使用本机打包程序,并且您需要一个 conf 目录,这正是 play 所做的。如果你使用 play,那么最好将代码放在
app目录下,将配置文件放在conf目录下。玩dist任务会为你处理包装...... -
感谢 Gilad,但我没有使用 play :)