2011-04-15 15 views
8

Recientemente decidí usar SBT para construir un proyecto existente. En este proyecto tengo algunos archivos .glsl dentro de los paquetes scala que necesito copiar durante la fase de compilación.Copie los archivos de fuentes en el directorio de destino con SBT

El proyecto está estructurado de la siguiente manera:

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

¿Es esta estructura de archivo correcto para SBT o tengo que poner los archivos .glsl en otro directorio. ¿Y conoces una forma clara de copiar estos archivos en la carpeta de destino?

yo preferiría no poner estos archivos en el directorio de recursos, ya que son (no compilado) Fuentes archivos

, gracias

Respuesta

8

No recomendaría poner esos archivos en src/main/scala ya que no pertenecen ahí. Si desea mantenerlos separados de sus archivos de recursos, puede ponerlos en una ruta personalizada, p. src/main/glsl y agregue las siguientes líneas a la definición de su proyecto para copiarlas en el directorio de salida:

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

Gracias. ¡Funciona perfectamente! :) –

+0

@Mr_Qqn Tengo un tipo de requisito similar para mi proyecto Java y no puedo averiguar en qué archivo de configuración de proyecto para sbt necesitamos hacer los cambios (además, no tengo ninguna experiencia con Scala) –

+0

¿Puedes hacer lo mismo con webappResources? Sé que hay una variable de WebappPath que puede cambiar, pero no puedo encontrar ninguna mención de un webappResources que pueda usarse para combinar recursos de varias carpetas. –

Cuestiones relacionadas