具有一个依赖于多个lib模块的应用程序。
在不同的lib模块中,它们依赖于公共库('common_utils_lib'
),但是通过resolutionStrategy
强制使用最适合该托管库的版本。
,在应用中,resolutionStrategy
可能有自己的'common_utils_lib'
。
因此,可能为同一'common_utils_lib'
指定了三个不同的版本。
application: forceToUseVersion = 1
libA: forceToUseVersion = 2
libB: forceToUseVersion = 3
构建应用程序时,我猜最终版本将是应用程序“强制”的版本-版本1。
但是,如果应用程序未为resolutionStrategy
指定'common_utils_lib'
怎么办?将要选择的'common_utils_lib'
是什么版本?
版本2或版本3?
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.name.contains('common_utils_lib'))
) {
details.useVersion "$forceToUseVersion"
}
}