使用SBT将源文件复制到目标目录中

时间:2011-04-15 07:40:28

标签: scala sbt

我最近决定使用SBT来构建现有项目。 在这个项目中,我在scala包中有一些.glsl文件,我需要在编译阶段复制这些文件。

项目结构如下:

- myapp.opengl
   - Shader.scala
- myapp.opengl.shaders
   - vertex_shader.glsl
   - fragment_shader.glsl

这个文件结构对SBT是否正确,还是需要将.glsl文件放入其他目录。你知道一种将这些文件复制到目标文件夹的简洁方法吗?

我不希望将这些文件放入资源目录,因为它们是(未编译的)源文件

由于

1 个答案:

答案 0 :(得分:9)

我不建议将这些文件放入src/main/scala,因为它们不属于那里。如果要将它们与资源文件分开,可以将它们放在自定义路径中,例如src/main/glsl并将以下行添加到项目定义中,以将它们复制到输出目录中:

val shaderSourcePath = "src"/"main"/"glsl"

// use shaderSourcePath as root path, so directory structure is
// correctly preserved (relative to the source path)
def shaderSources = (shaderSourcePath ##) ** "*.glsl"

override def mainResources = super.mainResources +++ shaderSources