android, какая версия зависимости используется, если существует несколько версий от нескольких библиотек - PullRequest
0 голосов
/ 25 октября 2019

Наличие 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"
            }
          }
}

Какую версию приложение будет использовать в конце концов?

...