Наличие lib_core
с версией 1.0.0
, 2.0.0
и 3.0.0
lib_A
(сторонней) зависит от lib_core: 3.0.0
lib_B
(сторонний) имеет зависимость с lib_core: 2.0.0
app
также имеет свою собственную зависимость от 1.0.0 и зависимости от lib_A
и lib_B
Все они могут иметь ResolutionStrategy, чтобы заставить их использовать свою собственную версию
app
— lib_core:1.0.0
- lib_A
— lib_core:3.0.0
— lib_B
— lib_core:2.0.0
Какую версию приложение будет использовать в конечном итоге?
Я думаю, если приложение имеет ResolutionStrategy дляпринудительно использовать lib_core версии 1.0.0, тогда он будет использовать lib_core 1.0.0 (что, если это не так, следует ли выбирать lib_core 3.0.0 или 2.0.0 или 1.0.0?)
Чтоесли и lib_A, и lib_B имеют силу использовать свою собственную версию core_lib:
app
— lib_core:1.0.0
- lib_A
— lib_core:3.0.0
resolutionStrategy {
eachDependency { details ->
if (details.requested.group == "lib_core") {
details.useVersion “3.0.0”
}
}
— lib_b
— lib_core:2.0.0
resolutionStrategy {
eachDependency { details ->
if (details.requested.group == "lib_core") {
details.useVersion "2.0.0"
}
}
}
Какую версию приложение будет использовать в конце концов?