2012-04-12 13 views
11

Mam sporo problemów wskazujących na niestandardowy katalog dla plików źródłowych Scala w SBT.Zmiana katalogu źródeł Scala w SBT

Chciałbym sbt do kompilacji plików scala z danego katalogu zamiast zwykłego katalogu src/main/scala.

Próbowałem zarówno definiując .sbt i .scala pliki projektu, ustawienie baseDirectory, scalaSource (i scalaSources w pliku .scala). Ja również bawiłem się wszystkim, od systemów absolutnych po względne ścieżki, ale nic nie działa. Nie może zlokalizować żadnego pliku .scala w określonym katalogu.

Jakie są właściwe sposoby radzenia sobie z tym?

Odpowiedz

20

Spróbuj tego w build.sbt:

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

To spowoduje katalogu src/main/foo źródeł Scala. Jeśli chcesz korzystać z niektórych dowolnego katalogu, przejdź do tego:

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

Świetnie! Właśnie tego potrzebowałem. Zabawne Nigdy wcześniej nie wpadłem na to. Dzięki :) –

+3

Tylko na przyszłość; Po wielu poszukiwaniach okazało się, że pliki .scala nie zostały skompilowane, ponieważ wszystko poniżej src zostało zignorowane, z wyjątkiem scala/i java /. Rozwiązaniem było dodanie katalogu do katalogów kompilacji, takich jak: sourceDirectories w Compile + = new File ("/ dir/to/scala/src") –

+1

Nie najlepsze rozwiązanie! Dlaczego przedefiniowujesz sourceDirectories? Zwykle lepiej przedefiniować scalaSource. –

2

Update w odpowiedzi na SBT 0.13.13 ->

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

I dodać katalog źródłowy (zamiast po prostu zastąpienie go) także dla SBT 0.13.13 ->

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

+0

To jest nieco łatwiejsze do odczytania: 'sourceDirectory w kompilacji: = baseDirectory.value /" foo "' i działa całkiem dobrze. –