如何创建代表其他 sbt 项目模型的 scala sbt 项目模型?

how to create a scala sbt project model which represents a model to other sbt projects?

我有一个 scala js sbt 项目,我在这个项目中开发了新的用户界面组件。

人 p1 有一个具有相同结构的项目(相同 build.properties 和 plugins.sbt),他如何访问我的用户界面组件。

我应该在 build.sbt 中添加一些规范吗?

如果你想共享一些项目设置,你可以创建一个 sbt 插件 - 它允许你有一些通用设置,添加对其他 sbt 插件的依赖,甚至覆盖它们的配置。例如,参见 sbt-softwaremill 作为用于在项目之间共享一些公共内容的插件示例。

它不会神奇地更新所有配置,因为:

  • build.properties 在 sbt 代码为 运行
  • 之前被评估
  • 您必须将此插件添加到 plugins.sbt
  • 您必须在每个项目中创建项目结构

任何比理论上可能的配置共享更多的配置共享,例如使用 git 子模块并将符号链接提交到 repo,但这将是非常错误的 - 对一个项目的任何更改都会导致另一个项目的更改,并且你将它们分开是有原因的 - 如果两个项目是相同的你一开始会有一个项目。

如果您需要共享代码本身,您可以构建代码,将其发布到一个 artifactory 并在另一个项目中添加依赖项。

但这只是在你真的有两个项目的情况下,而且你完全有可能只需要一个 git 项目和不同的分支,开发人员可以在他们自己的分支上工作,然后将更改合并到公共分支,因为这就是使用 git.

的意义所在