Scala Sbt多模块-将某个项目用作另一个项目中的模块

Scala Sbt多模块-将某个项目用作另一个项目中的模块,scala,sbt,git-submodules,Scala,Sbt,Git Submodules,我有一个sbt项目,commonLib,它作为一个独立的项目构建得很好。我现在想做的是,将这个项目作为其他项目的git子模块,并将其添加为附加模块。生成的布局应如下所示: + project + src + commonLib +---- project +---- src 如何正确地将此类sbt项目添加为根项目的模块?这可能吗?将所有模块放在一个存储库中对我来说不是一个选项,因为这个公共库也被其他项目使用,我们希望使这个模块的协作开发尽可能顺利 另外,在commonLib中的每次提交时使用r

我有一个sbt项目,
commonLib
,它作为一个独立的项目构建得很好。我现在想做的是,将这个项目作为其他项目的git子模块,并将其添加为附加模块。生成的布局应如下所示:

+ project
+ src
+ commonLib
+---- project
+---- src
如何正确地将此类sbt项目添加为根项目的模块?这可能吗?将所有模块放在一个存储库中对我来说不是一个选项,因为这个公共库也被其他项目使用,我们希望使这个模块的协作开发尽可能顺利


另外,在commonLib中的每次提交时使用repository for Release并不是一个好的解决方案,我们至少不能坚持使用类似common library的版本,因为开发非常活跃。

多亏了lpiepiora的文档链接,我最终在我的Build.scala for root项目中这样做:

lazy val commonLib = ProjectRef(file("commonLib"), "commonLib")
lazy val root = Project("myProject", file(".")).dependsOn(commonLib)
,其中commonLib是commonLib sbt项目的Build.scala中提到的项目名称


如果您只需要带有独立sbt项目的子目录的根项目,只需使用RootProject而不是ProjectRef。

是否要将
commonlib
作为常规项目的一部分签出?如果这只是一个概念性的想法,那么您应该善于定义
RootProject
及其依赖项。Sbt将自动签出它并为您构建。commonLib本身是通常的Sbt项目,它有自己的git存储库。我想在这里做的是将其添加为git子模块,以便能够从依赖于此库的根项目中管理其状态。您提供的文档链接看起来很有趣,我会查看它,看看它是否有帮助。如果对您有效,请告诉我,如果有效,我会给出正确的答案。可能的副本