2012-04-12 42 views
11

我在指定SBT中的Scala源文件的自定義目錄時遇到了一些麻煩。更改SBT中的Scala源代碼目錄

我想sbt從一個給定的目錄而不是常規的src/main/scala目錄編譯scala文件。

我曾經嘗試都定義名.bst和.scala項目文件,設置baseDirectoryscalaSource(在.scala文件和scalaSource小號)。我也玩弄了從系統絕對到相對路徑的所有內容,但似乎沒有任何工作。它無法在指定的目錄下找到任何.scala文件。

有什麼正確的方法來處理這個問題?

回答

20

build.sbt試試這個:

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

這將導致目錄的src/main /富斯卡拉來源。如果你想使用一些任意目錄下,去這樣的:

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

太棒了!這正是我所需要的。有趣的我從來沒有碰到過這個。謝謝:) – 2012-04-13 11:24:39

+3

僅供將來參考;經過大量搜索後,我發現.scala文件沒有被編譯,因爲src /下的所有內容都被忽略了,除了scala /和java /。解決方法是將dir添加到編譯目錄中,如下所示:編譯+ =新文件(「/ dir/to/scala/src」中的sourceDirectories) – 2012-04-16 11:22:07

+1

不是最好的解決方案!你爲什麼重新定義sourceDirectories?通常你會更好地重新定義scalaSource。 – 2012-04-18 10:23:34

2

更新答案SBT 0.13.13 - >

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

,並添加源目錄(而不是隻替換它)也用於SBT 0.13.13 - >

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

+0

這有點容易閱讀:'sourceDirectory in Compile:= baseDirectory.value /「foo」'並且工作得很好。 – 2018-01-06 16:03:37