У меня есть родительский проект A и дочерний проект B, который наследуется от A, используя scala SBT build.
Родительский A зависит от библиотеки с версией «l1», в которой есть подбиблиотека с версией p1, но для него требуется другая версия подбиблиотеки / пакета с версией p2.
Для этого я включил версию подбиблиотеки p2 в dependencyOverrides в родительский build.sbt.
Мне нужно, чтобы ребенок зависел от той же библиотеки 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
)





dependencyOverride - libraryDependencies достаточно, а dependencyOverride вызывает некоторые проблемы, например предназначен для внутреннего пользования,assemblySettingslibraryDependencies в родительском, подпроект должен наследовать родительские версии как транзитивные зависимостиПример:
val dependencies = libraryDependencies ++= Seq(
...
)
val parent = (project in file("parent"))
.settings(dependencies)
.settings(assemblySettings)
val parent = (project in file("parent"))
.dependsOn(parent % "provided->provided;compile->compile;test-
>test;runtime->runtime")
.settings(dependencies) // actually unnecessary
.settings(assemblySettings)