【问题标题】:Specify different version of sbt for a subproject in multi-project?为多项目中的子项目指定不同版本的 sbt?
【发布时间】:2014-01-16 12:17:37
【问题描述】:

我有一个包含几个子项目的多项目。

根项目的project/build.properties 包含

sbt.version=0.13.0

事实证明,由于依赖问题,其中一个子项目仅适用于版本0.12.4

我将带有该版本的build.properties 放入其目录中,但它没有更改此项目的 sbt 版本。

我该如何正确地做到这一点?有可能吗?

【问题讨论】:

  • 你把另一个build.properties0.12.4 放在[subproject]/project/build.properties 中了吗?
  • @JacekLaskowski,是的。
  • sbt 不支持此用例。
  • @jsuereth,有没有办法做到这一点?

标签: scala sbt


【解决方案1】:

目前,sbt 允许在同一构建中的项目之间建立深度任务级依赖关系。因此,虽然每个项目都有自己的目录,但它们共享一个用于构建的类加载器,其中包含所有定义。

这限制了您不能让构建共享不兼容的版本。

将来可能会取消此限制,但现在我会执行以下操作之一:

  1. 继续使用 sbt 0.12.4 进行构建
  2. 迁移项目之间的所有通信以通过 Ivy 进行。使用包装脚本进行 2 个构建,该脚本以正确的顺序运行它们。

【讨论】:

  • 您能否更彻底地解释一下2)?
猜你喜欢
  • 2021-05-28
  • 1970-01-01
  • 1970-01-01
  • 2017-02-28
  • 2016-06-03
  • 1970-01-01
  • 2015-01-27
  • 2018-12-27
相关资源
最近更新 更多