2011-04-15 146 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

相關問題