2012-04-12 14 views
11

Ich habe einige Probleme, auf ein benutzerdefiniertes Verzeichnis für Scala Quelldateien in SBT zu zeigen.Scala Quellverzeichnis in SBT ändern

Ich möchte sbt, um Scala-Dateien aus einem bestimmten Verzeichnis anstelle des regulären Verzeichnisses src/main/scala zu kompilieren.

Ich habe versucht, eine .sbt und .scala Projektdateien sowohl definieren, baseDirectory, scalaSource (und scalaSources in der .scala-Datei) zu setzen. Ich habe auch mit allem von System-absoluten bis zu relativen Pfaden gespielt, aber nichts scheint zu funktionieren. Es kann keine .scala-Datei unter dem angegebenen Verzeichnis finden.

Was sind die richtigen Möglichkeiten, damit umzugehen?

Antwort

20

Versuchen Sie dies in build.sbt:

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

Dieses in einem Verzeichnis src/main/foo für Scala Quellen führen. Wenn Sie etwas beliebiges Verzeichnis verwenden möchten, gehen Sie für diese:

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

Great! Genau das habe ich gebraucht. Komisch, ich bin noch nie davor gestoßen. Danke :) –

+3

Nur für zukünftige Referenz; Nach vielen Suchen habe ich festgestellt, dass die .scala-Dateien nicht kompiliert wurden, da alles unter src/ignoriert wurde, außer für scala/und java /. Die Lösung bestand darin, das Verzeichnis den Compile-Verzeichnissen hinzuzufügen: sourceDirectories in Kompilieren + = neue Datei ("/ dir/to/scala/src") –

+1

Nicht die beste Lösung! Warum definieren Sie sourceDirectories neu? Normalerweise definierst du besser scalaSource. –

2

Update-Antwort für SBT 0.13.13 ->

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

Und ein Quellverzeichnis hinzufügen (statt nur ihn zu ersetzen) auch für SBT 0.13.13 ->

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

+0

Das ist ein bisschen einfacher zu lesen: 'sourceDirectory in Kompilieren: = baseDirectory.value /" foo "' und funktioniert nur gut. –

Verwandte Themen