分享

productFlavors 实现产品线区分

 mediatv 2019-11-19

1 增加产品维度

在 library->build.gradle->android->defaultConfig 下 flavorDimensions "product"
flavorDimensions 表示定义 flavor 的维度(可以有多个维度,eg:版本维度,付费版 & 免费版等);product 用于表示产品维度,易车 app & 二手车 app

2 引入 productFlavors

在 library->build.gradle->android 下创建 productFlavors 节点


productFlavors {

yiche {

dimension "product"

}

usedcar {

dimension "product"

}

}

3 定义要发布的版本属性defaultPublishConfig isusedcar ? "usedcarRelease" : "yicheRelease"( 表示要发布易车 app 或者二手车 app,注意:isusedcar 需要在 ext 下配置isusedcar = true,修改 isusedcar 的值 true/false 表示发布易车 / 二手车版本 )

企业微信截图_a7900ac0-3d1a-42bd-bed8-d355733621f2.png
企业微信截图_0a79ac57-cd9e-42a6-aad1-d41e2e77ad1b.png

4 自己的壳工程配置

在 app 的 build.gradle 中 配置 1 2 步骤即可运行

5 发布

uploadArchives 任务上传 defaultPublishConfig 配置的 Snapshot 版本到 nexus 服务器;

uploadRelease 任务上传 defaultPublishConfig 配置的 Release 版本

6 二手车模块依赖方式

引用最新版本 Release 包

compileOnly(usedcar_login, ES2) or implementation(usedcar_login, ES2)

implementation(usedcar_login_s, ES2)为 snapshot 版本

7 flavor 使用

1 如图,在 src 下创建与配置 flavor 相同的包名

企业微信截图_23593e79-32f4-4576-9879-0be4ec23cceb.png

2 flavor 开发

将需要做不同配置的文件拷贝到对应目录下(对应包路径也要相同)
eg:在不同 flavor 中将出现两个相同的 java 类,在 main 文件夹下不包含该 java 文件
企业微信截图_ed7ac007-fc07-4c64-a441-cd6164d6a05d.png

3 在 buildCariants 中切换 flavor 将会引用对应 flavor 中的文件替换 main 中相同的文件

企业微信截图_b4923702-706e-402a-81d5-2265cd540bb6.png

4 在 app 的 build.gradle 的 flavor 下可以配置 defaultConfig 的任意变量,实现不同配置

企业微信截图_1b3ec66c-a32f-4837-8a2c-6249634a1798.png

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多