2012-04-12 14 views
11

Estoy teniendo bastantes problemas apuntando a un directorio personalizado para archivos fuente Scala en SBT.Cambiando el directorio de fuentes de Scala en SBT

Me gustaría que sbt compile scala-files desde un directorio determinado en lugar del directorio src/main/scala normal.

me han tratado tanto la definición de un .sbt y .scala archivos de proyecto, el establecimiento de baseDirectory, scalaSource (y scalaSources en el archivo .scala). También he jugueteado con todo, desde el sistema absoluto hasta caminos relativos, pero nada parece funcionar. No puede encontrar ningún archivo .scala en el directorio especificado.

¿Cuáles son las formas adecuadas de manejar esto?

Respuesta

20

Prueba esto en build.sbt:

scalaSource in Compile <<= (sourceDirectory in Compile)(_/"foo") 

Esto dará lugar a un directorio src/main/foo para las fuentes de Scala. Si desea utilizar algún directorio arbitraria, vaya para esto:

scalaSource in Compile := file("/Users/heiko/tmp") 
+0

Gran! Esto es justo lo que necesitaba. Es curioso que nunca me encontré con esto antes. Gracias :) –

+3

Solo para referencia futura; Después de mucha búsqueda encontré que los archivos .scala no se compilaron porque todo lo que estaba debajo de src/fue ignorado, excepto por scala/y java /. La solución consistía en agregar el directorio dir a los directorios de compilación de la siguiente manera: sourceDirectories en Compile + = new File ("/ dir/to/scala/src") –

+1

¡No es la mejor solución! ¿Por qué redefinir sourceDirectories? Por lo general, es mejor redefinir ScalaSource. –

2

Actualización de respuesta para SBT 0.13.13 ->

sourceDirectory in Compile := (baseDirectory(_/"foo")).value

Y para añadir un directorio de origen (en lugar de simplemente reemplazándolo) también para SBT 0.13.13 ->

unmanagedSourceDirectories in Compile += (baseDirectory(_/"foo")).value

+0

Esto es un poco más fácil de leer: 'sourceDirectory in Compile: = baseDirectory.value /" foo "' y funciona igual de bien. –

Cuestiones relacionadas