android - 基于 Flavor 的 gradle 依赖版本
问题描述
我有一个具有多种口味的应用程序:flava1
、、、 .....(随着时间的推移flava2
,flava3
口味的数量不断增加)。
some-lib
该应用程序使用version的依赖项X.X.X
。但是,其中一种风格flava2
要求依赖是版本X.X.Y
,而另一种风格则继续使用X.X.X
.
我尝试使用基于风味的依赖行,如下所示:
dependencies {
implementation 'com.example:some-lib:X.X.X'
flava2Implementation 'com.example:some-lib:X.X.Y'
}
但它总是最终会使用X.X.X
. 我什至尝试更改这两条线的顺序(flava2Implementation
首先放置),但这也不起作用。
有没有其他方法可以实现这一点,而无需为除 之外的所有口味显式编写flava1Implmentation
,flava3Implmentation
等 因为每次添加新风味时,我们可能会忘记在依赖项中为其添加一行flava4Implmentation
flava2
解决方案
我试图解决这个问题dimensions
:
flavorDimensions "flav1", "other"
productFlavors {
flav1 {
dimension "flav1"
applicationIdSuffix ".flav1"
}
flav2 {
dimension "other"
applicationIdSuffix ".flav2"
}
flav3 {
dimension "other"
applicationIdSuffix ".flav3"
}
forOther {
dimension "other"
}
}
然后我们可以只为forOther
implementation 'com.example:some-lib:X.X.X'
flav1Implementation 'com.example:some-lib:X.X.Y'
forOtherImplementation 'com.example:some-lib:Z.Z.Z'
因为forOther/
<included in flav2/flav3>
推荐阅读
- android - 屏幕中间的 Android Studio 模拟器白条
- python - Django - 无法重定向以更新表单和更新值
- tfs - azure devops 2020 是否支持 Isubscriber(服务器端插件)?
- java - Tycho 无法解析间接引用的 SWT 依赖项
- node.js - 如何将对话流聊天机器人与 Microsoft Teams 集成?
- javascript - 在模态中初始化后日期选择器不显示
- php - 从 Wordpress 术语中获取自定义字段
- python - 在 numpy 结构化数组中应该如何使用字段名?
- activerecord - 保存来自多个步骤页面的所有数据的最佳做法是什么?
- amazon-web-services - 在 Terraform 中使用外部数据源调用 Bash 脚本时出现问题