在SBT中更改Scala源目录

Jen*_*olm 12 scala sbt

我在SBT中指向Scala源文件的自定义目录时遇到了一些麻烦.

我想sbt从给定目录而不是常规src/main/scala目录编译scala文件.

我已经尝试了定义.sbt和.scala项目文件,设置baseDirectory,scalaSource(和.scala文件中的scalaSource s).我还玩弄了从系统绝对到相对路径的所有东西,但似乎没有任何效果.它找不到指定目录下的任何.scala文件.

处理这个问题的正确方法是什么?

Hei*_*ger 20

build.sbt中尝试这个:

scalaSource in Compile <<= (sourceDirectory in Compile)(_ / "foo")
Run Code Online (Sandbox Code Playgroud)

这将导致Scala源的目录src/main/foo.如果要使用某个任意目录,请执行以下操作:

scalaSource in Compile := file("/Users/heiko/tmp")
Run Code Online (Sandbox Code Playgroud)

  • 仅供将来参考; 经过大量搜索后,我发现.scala文件没有被编译,因为src /下的所有内容都被忽略了,除了scala /和java /.解决方案是将dir添加到编译目录中,如下所示:编译中的sourceDirectories + = new File("/ dir/to/scala/src") (3认同)
  • 如果你想添加多个源目录怎么办?在编译<< = Seq(文件("src1"),文件("src2"))` (3认同)

Car*_*tos 5

更新SBT 0.13.13的答案->

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

并为SBT 0.13.13添加源目录(而不是仅仅替换它)->

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

  • 这更容易阅读:`sourceDirectory in Compile := baseDirectory.value / "foo"` 并且工作得很好。 (3认同)