2011-04-15 121 views
8

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

该项目的结构是这样的:

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

这是文件结构正确的SBT或者我需要把.glsl文件到其他目录。你知道一个干净的方式将这些文件复制到目标文件夹吗?

我宁愿不把这些文件放到资源目录,因为它们(非编译)来源文件

感谢

回答

8

我不建议把这些文件放入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 
+0

谢谢。它完美的工作! :) – 2011-04-15 14:58:08

+0

@Mr_Qqn我对我的Java项目有一种相同的要求,我无法弄清楚哪个项目的配置文件需要进行更改(另外我对Scala没有任何经验) – 2012-06-14 12:03:38

+0

你可以用webappResources做同样的事吗?我知道有一个webappPath变量,您可以更改,但我找不到任何提及可用于合并多个文件夹中的资源的webappResources。 – 2012-06-15 08:11:06

相关问题