Sbt 多模块的平面目录结构?

Sbt 多模块的平面目录结构?,sbt,Sbt,SBT是否可以为多模块使用平面目录结构 也就是说,没有: - parent |- child_a |- child_b 简单地说: - parent - child_a - child_b 我尝试了后者,并使用以下配置了父级project/Build.scala: lazy val child_a = Project(id = "child_a", base = file("../child_a")) 但在执行sbt命令时,如sbt package,我会遇到以下错误: [e

SBT是否可以为多模块使用平面目录结构

也就是说,没有:

- parent
  |- child_a
  |- child_b
简单地说:

- parent
- child_a
- child_b
我尝试了后者,并使用以下配置了父级
project/Build.scala

lazy val child_a = Project(id = "child_a",
    base = file("../child_a"))
但在执行sbt命令时,如
sbt package
,我会遇到以下错误:

[error] java.lang.AssertionError: assertion failed: Directory D:\src\child_a is not contained in build root D:\src\parent

我认为这是不可能的。

我认为这是不可能的。

解决方案是
ProjectRef

目录。。。未包含在生成根目录中…
Project
-的问题,但不适用于
ProjectRef
。如果您切换到
ProjectRef
,它将启动。如果您在主项目的
build.sbt
中定义:

lazy val root = (project in file ("."))
    .aggregate(helper_library)
    .dependsOn(helper_library)

lazy val helper_library = ProjectRef(file("../helper_library"), "helper_library")

然后,就目录结构而言,
helper\u库
和主项目是兄弟项目-正如您在问题中所希望的那样-同时,主项目聚合到并依赖于
helper\u库
解决方案是
ProjectRef

目录。。。未包含在生成根目录中…
Project
-的问题,但不适用于
ProjectRef
。如果您切换到
ProjectRef
,它将启动。如果您在主项目的
build.sbt
中定义:

lazy val root = (project in file ("."))
    .aggregate(helper_library)
    .dependsOn(helper_library)

lazy val helper_library = ProjectRef(file("../helper_library"), "helper_library")

然后,就目录结构而言,
helper\u库
和主项目是兄弟项目-正如您在问题中所希望的那样-同时,主项目聚合到并依赖于
helper\u库

右侧。您可以使用源依赖项,但它们的占用空间要大一些。对。您可以使用源依赖项,但它们占用的空间要大一些。