为多项目中的子项目指定不同版本的 sbt?
Posted
技术标签:
【中文标题】为多项目中的子项目指定不同版本的 sbt?【英文标题】:Specify different version of sbt for a subproject in multi-project? 【发布时间】:2014-01-16 12:17:37 【问题描述】:我有一个包含几个子项目的多项目。
根项目的project/build.properties
包含
sbt.version=0.13.0
事实证明,由于依赖问题,其中一个子项目仅适用于版本0.12.4
。
我将带有该版本的build.properties
放入其目录中,但它没有更改此项目的 sbt 版本。
我该如何正确地做到这一点?有可能吗?
【问题讨论】:
你把另一个build.properties
和0.12.4
放在[subproject]/project/build.properties
中了吗?
@JacekLaskowski,是的。
sbt 不支持此用例。
@jsuereth,有没有办法做到这一点?
【参考方案1】:
目前,sbt 允许在同一构建中的项目之间建立深度任务级依赖关系。因此,虽然每个项目都有自己的目录,但它们共享一个用于构建的类加载器,其中包含所有定义。
这限制了您不能让构建共享不兼容的版本。
将来可能会取消此限制,但现在我会执行以下操作之一:
-
继续使用 sbt 0.12.4 进行构建
迁移项目之间的所有通信以通过 Ivy 进行。使用包装脚本进行 2 个构建,该脚本以正确的顺序运行它们。
【讨论】:
您能否更彻底地解释一下2)?以上是关于为多项目中的子项目指定不同版本的 sbt?的主要内容,如果未能解决你的问题,请参考以下文章