我们有一个具有多种风格的项目,每个风格有3种不同的构建类型:调试、QA和发布。
productFlavors {
flavor1 {}
flavor2 {}
flavor3 {}
}
buildTypes {
debug {
applicationIdSuffix ".debug"
}
qa {
applicationIdSuffix ".qa"
}
release {
..
}
但是对于每种风格和构建类型,我们需要不同的库依赖性。例如:
compile 'baseUrl:myLibrary:1.0.0:flavor1Release@aar'
compile 'baseUrl:myLibrary:1.0.0:flavor1Qa@aar'
...
compile 'baseUrl:myLibrary:1.0.0:flavor3Qa@aar'
我们可以使用Groovy脚本添加这些依赖项吗?
我知道您可以像这样为每个构建类型定义特定的依赖关系
debugCompile 'baseUrl:myLibrary:1.0.0:debugLib@aar'
releaseCompile 'baseUrl:myLibrary:1.0.0:release:Lib@aar'
因为不可能生成没有关联生成类型的APK,所以APK总是配置为两种(或更多)配置:编译和编译。创建新的生成类型会根据其名称自动创建新配置。
它似乎也能很好地处理这里描述的味道(但不能处理味道维度)
为一个变体(buildType风格)做这件事似乎需要更多的工作。否则,您可以将您的库定义为一个真正的库项目,并使用如下语法
要创建对另一个已发布工件的依赖关系,您需要指定使用哪一个:
dependencies {
flavor1Compile project(path: ':lib1', configuration: 'flavor1Release')
flavor2Compile project(path: ':lib1', configuration: 'flavor2Release')
}
来自:http://tools.android.com/tech-docs/new-build-system/user-guide
解决方案
我希望这个代码对你有充分的帮助。