简体   繁体   English

Sbt Multi-Module-将某个项目用作另一个项目中的模块

[英]Sbt Multi-Module - using some project as module in another project

I have sbt project, commonLib which builds fine as a standalone project. 我已经SBT项目, commonLib它建立罚款作为一个独立的项目。 What I want to do now, is to make this project a git-submodule of other project and add it as additional module. 我现在想要做的是使该项目成为其他项目的git-submodule并将其添加为其他模块。 The resulting layout should look like following: 生成的布局应如下所示:

+ project
+ src
+ commonLib
+---- project
+---- src

How can I correctly add such sbt project as a module of root project? 如何正确地将这样的sbt项目添加为根项目的模块? Is this even possible? 这有可能吗? Putting all modules in one repository is not an option for me, since this commonLib is also used by other projects, and we want to make collaborative development of this module as smooth as possible. 对于我来说,将所有模块都放在一个存储库中不是一个选择,因为此commonLib也被其他项目使用,并且我们希望使此模块的协作开发尽可能顺利。

PS Using repository for releases on every commit in commonLib does not feels like a good solution, and we can't stuck to at least something like releases of common library because development is very active. PS在commonLib中的每个提交上使用版本库来发布版本感觉不是一个很好的解决方案,并且由于开发非常活跃,我们不能至少坚持使用通用库版本之类的东西。

Thanks to the documentation link from lpiepiora , I ended up doing it like this in my Build.scala for root project: 多亏了lpiepiora的文档链接,我最终在root项目的Build.scala中这样做了:

lazy val commonLib = ProjectRef(file("commonLib"), "commonLib")
lazy val root = Project("myProject", file(".")).dependsOn(commonLib)

, where commonLib is a name of project mentioned in Build.scala of commonLib sbt project. ,其中commonLib是commonLib sbt项目的Build.scala中提到的项目名称。

If you only need root project of subdirectory with standalone sbt project just use RootProject instead of ProjectRef. 如果只需要带有独立sbt项目的子目录的根项目,则使用RootProject而不是ProjectRef。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM