【发布时间】:2019-05-20 16:36:31
【问题描述】:
我有一个父项目 A 和一个从 A 继承的子项目 B,使用 scala SBT 构建。
父 A 依赖于一个版本为“l1”的库,该库有一个版本为 p1 的子库,但它需要一个版本为 p2 的不同版本的子库/包。
为了实现这一点,我在父 build.sbt 的 dependencyOverrides 中包含了子库版本 p2。
我需要孩子依赖于同一个库 l1,但也依赖于子库版本 p2。目前发生的事情是 l1 由子级继承,而 p2 存在于父级中,但只有最初在库中的子库的版本 p1 被包含在子级中。
我可以看到,如果我在子级 build.sbt 中提供与父级相同的依赖项覆盖,它也可以通过在子级中包含子库版本 p2 来工作。
我想知道是否有一种隐式方法可以将父项的依赖项覆盖继承给子项。
我的 sbt 版本是 1.8.0 及以下是父 build.sbt 中的子定义。
//child definition
lazy val child = Project("child",file("child"))
.dependsOn(parent % "provided->provided;compile->compile;test->test;runtime->runtime")
.settings(
name := "child",
assemblySettings
)
【问题讨论】:
标签: scala build dependencies sbt