git - 与远亲的 SBT 多项目
问题描述
我正在使用 SBT 开发一个 Scala 项目,由于代码库对于一个项目/存储库来说变得过于繁重和复杂,我们将把它拆分并将模块推送到一个连接中以进行依赖项检索。
当前布局如下所示:
project-stack/ # Unique git repo
├── build.sbt # root
├── connector1_module/
│ └── build.sbt
├── connector2_module/
│ └── build.sbt
└── jobs_module/
└── build.sbt
然而,我们在根构建中有很多公共信息,我们不想在所有项目和存储库中重复和维护(即依赖版本、sbt 插件和配置,...)。
新布局如下所示:
project-stack/ # Parent project repo
└── build.sbt # define all common properties
connector1_module/ # another git repo
└── build.sbt # inherit from project-stack
connector1_module/ # another git repo
└── build.sbt # inherit from project-stack
jobs_module/ # another git repo
└── build.sbt # inherit from project-stack
我对 Maven 有一些经验,使用它我们会完成一个具有所有属性的父 POM,并让不同的项目继承它。SBT 是否支持从遥远的 SBT 项目继承类似的父信息?
我知道一种解决方案是保持整体结构并使用 git 子模块,但如果可能的话,我想避免复杂性。
谢谢
-- 编辑:
我正在使用 SBT 版本 1.1.6
解决方案
sbt 没有与 maven 对远方父母类似的方法。但与maven相比,sbt在编写自己的插件方面非常友好,可以依赖其他插件。
您可以创建一个单独的 sbt 插件,sbt-my-company-name
即将您的根项目中的内容嵌入其中。它可以包含常见的 3rd-party 插件并以特定方式启用它们。您也可以对常见的库依赖项进行编码。
查看如何使用本教程创建自己的插件。
推荐阅读
- c - 重定位向量表的 C 代码
- kubernetes - 如何在 Kubernetes 中的容器之间共享源自容器的目录?
- php - 在 netbeans 中将搜索到的文本替换为附加文本
- dart - 为什么 `if (var = null)` 在 dart 中编译?
- android - 服务错误“...没有零参数构造函数”
- php - 数据库迁移 (MYSQL)
- asp.net-mvc - 在@Html.TextBoxFor(..) (等)中使用模型与参数是否安全?
- spring-data-jpa - java.lang.ClassCastException:java.util.HashMap 无法转换为 com.spacestudy.model.Investigator
- api - FB Messenger:如何根据最后 2-3 个回复发送消息
- python - 将每个文件与 Python 中另一个文件夹中的相应文件进行比较?