2

我们有一个包含 100 多种口味的大型项目。为了帮助我们的 Google play 服务保持一致,我想定义一个默认版本,然后根据需要在风格中覆盖它。

因此,为了让我们所有的各种依赖项使用相同的版本,我得到了这个:

 configurations.all {
    resolutionStrategy {
        eachDependency { DependencyResolveDetails details ->
            //specifying a fixed version for all libraries with 'com.google.android.gms' group
            if (details.requested.group == 'com.google.android.gms') {
                details.useVersion '8.4.0'
            }
        }
    }
}

我想定义:

defaultConfig {
    ext.googlePlayServicesVersion '9.6.0'
}

然后以我的口味骑它:

myFlavor {
    // XXX plugin requires this older version
    ext.googlePlayServicesVersion '8.4.0'
}

然后在 configuration.all 循环中使用变量 version。

反正有没有在那个循环中访问那个变量?

4

1 回答 1

3

您可以直接在您的dependencies块中执行此操作:

dependencies {
  compile "com.google.android.gms:play-services-ads:$ext.googlePlayServicesVersion"
  myFlavorCompile "com.google.android.gms:play-services-ads:$ext.googlePlayServicesVersionOld"
}

设置的任何项目风格依赖项flavorNameCompile都将覆盖相同依赖项的默认compile依赖项,并允许您覆盖特定风格的版本。

(我play-services-ads仅用作示例)

于 2016-10-13T22:12:38.653 回答