0

app 依赖于库lib_Alib_B(即implementation 'com.aaa:lib_A:1.0.0',和 implementation 'com.bbb:lib_B:16.0.0')。

lib_A内部依赖com.xxx.yyy:zzz并强制版本

resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested

        if (requested.group == 'com.xxx.yyy') {
            details.useVersion "10.0.2"
        }

lib_B依赖于相同com.xxx.yyy:zzz的版本并被迫使用不同的版本

resolutionStrategy.eachDependency { DependencyResolveDetails details ->
        def requested = details.requested

        if (requested.group == 'com.xxx.yyy') {
            details.useVersion "10.6.1"
        }

问题:

  1. 如果应用程序没有在自己的 gradle 中指定与“com.xxx.yyy:zzz”相同的依赖项,那么用于构建应用程序并在运行时使用的依赖项将是什么。

  2. 如果应用程序还为同一依赖项本身指定了另一个版本,或者也可以resolutionStrategy用来强制到其他版本(可能比lib_Aand中指定的版本更旧lib_B),那么无论应用程序的依赖项版本是否对其他库具有主导权(尽管他们有自己的resolutionStrategy)?

4

0 回答 0