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

Mr_*_*Qqn 9 scala sbt

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

该项目的结构如下:

- myapp.opengl
   - Shader.scala
- myapp.opengl.shaders
   - vertex_shader.glsl
   - fragment_shader.glsl
Run Code Online (Sandbox Code Playgroud)

这个文件结构对于SBT是正确的还是我需要将.glsl文件放到另一个目录中.你知道一种将这些文件复制到目标文件夹的简洁方法吗?

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

谢谢

Mor*_*itz 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
Run Code Online (Sandbox Code Playgroud)