9

如何为sbt基于 - 的项目指定自定义目录布局?我一直在查看在线sbt材料,但我正在努力寻找这些信息......

我在文档中找到的是默认位置:

  • 基本目录中的源
  • 来源src/main/scalasrc/main/java
  • 测试src/test/scalasrc/test/java
  • src/main/resources和中的数据文件src/test/resources
  • 非托管 jar 文件在lib/

如何在build.sbt文件中覆盖这些?

我的项目结构目前如下:

  • 来源:[workspace]/sandbox-scala/src/sbt/myFirst/
  • 图书馆:[workspace]/java-lib/common/lib/

任何帮助表示赞赏。

4

1 回答 1

3

可以覆盖多个 sbt 的默认目录位置。这是一个覆盖 sbt 期望找到“非托管”依赖项/jar 文件的目录的示例:

unmanagedBase := baseDirectory.value / "custom-jars-directory"

(更多与sbt 文档中的依赖相关的示例。)

您还可以将目录配置为特定于特定“任务”...例如,要设置测试用例源代码所在的目录,请尝试:

scalaSource in Test := { (baseDirectory in Test)(_ / "test") }.value

然后您的核心应用程序源代码可能在其他地方,例如src/

scalaSource in Compile := { (baseDirectory in Compile)(_ / "src") }.value

注意:对于旧版本,sbt您可能需要以下(现已弃用)语法:

unmanagedBase <<= baseDirectory { base => base / "custom-jars-directory" }
scalaSource in Compile <<= (baseDirectory in Compile)(_ / "src")

此语法不适用于较新版本的sbt(我相信自 0.13.13 以来)。

于 2013-05-07T02:11:27.270 回答