2012-04-12 16 views
11

Sto riscontrando alcuni problemi di puntamento a una directory personalizzata per i file di origine Scala in SBT.Modifica directory di sorgenti Scala in SBT

Mi piacerebbe che sbt compili file di scala da una determinata directory invece della normale directory src/main/scala.

Ho provato sia la definizione di un .sbt e .scala file di progetto, impostando baseDirectory, scalaSource (e scalaSources nel file .scala). Mi sono anche divertito con tutto, dal sistema assoluto ai percorsi relativi ma niente sembra funzionare. Non è in grado di individuare alcun file .scala nella directory specificata.

Quali sono i modi corretti per gestirlo?

risposta

20

Prova questo in build.sbt:

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

Questo si tradurrà in una directory src/main/pippo per le fonti Scala. Se si desidera utilizzare una directory arbitraria, andare per questo:

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

Grande! Questo è proprio quello di cui avevo bisogno. Divertente non mi sono mai imbattuto in questo prima. Grazie :) –

+3

Solo per riferimento futuro; Dopo molte ricerche ho scoperto che i file .scala non sono stati compilati perché tutto sotto src/è stato ignorato, tranne per scala/e java /. La soluzione era aggiungere la directory alle directory di compilazione in questo modo: sourceDirectories in Compile + = new File ("/ dir/to/scala/src") –

+1

Non la soluzione migliore! Perché ridefinisci le SourceDirectories? Di solito è meglio ridefinire scalaSource. –

2

Aggiornamento risposta per SBT 0.13.13 ->

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

E per aggiungere una directory di origine (invece di sostituirlo) anche per SBT 0.13.13 ->

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

+0

Questo è un po 'più facile da leggere: 'sourceDirectory in Compile: = baseDirectory.value /" foo "' e funziona bene. –

Problemi correlati