如何为sbt项目指定自定义目录布局?

NS *_*oit 8 build sbt

如何为sbt基于项目的项目指定自定义目录布局?我一直在看在线sbt资料,但我很难找到这些信息......

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

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

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

我的项目结构目前如下:

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

任何帮助赞赏.

Chr*_* W. 3

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

unmanagedBase := baseDirectory.value / "custom-jars-directory"
Run Code Online (Sandbox Code Playgroud)

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

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

scalaSource in Test := { (baseDirectory in Test)(_ / "test") }.value
Run Code Online (Sandbox Code Playgroud)

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

scalaSource in Compile := { (baseDirectory in Compile)(_ / "src") }.value
Run Code Online (Sandbox Code Playgroud)

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

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

此语法在较新版本中不起作用sbt(我相信自 0.13.13 起)。