1、前言
现在的开发模式大部分都是组件化的开发模式了,因此我们可以看到工程会划分很多个 module ,根据 Gradle 的构建流程来看会经历如下几个步骤:
- 初始化阶段
- 配置阶段
- 执行阶段
很显然,如果我们工程项目中多了很多个 module 之后,那么每一个 module 都要经历这几个阶段,因此我们有一些优化时可以考虑考虑的
2、初始化阶段优化
我们的项目是需要划分国内国外的,并且登录,分享,支付都跟国内是不一样的,因此你看到我们工程有出现如下的 module
- pay-国内
- pay-国外
- share-国内
- share-国外
- login-国内
- login-国外
上面举了 6 个 module ,这些国内国外的命名只是好区分而已,实际项目肯定不会这样去命名的啦。
那么现在我们就会出现一个问题,如果我平时只是开发国内,那么我就不想国外的工程参与编译的,不然每次执行都要去执行一些无相干的 module ,浪费时间。
下面就来看看怎么优化这个初始化阶段 settings.gradle 的代码
//这里是 config.gradle
ext {
channel = 1//我们在这里定义一个变量channel,假设1表示海外市场的包
}
//这里是 settings.gradle 文件
apply from: 'config.gradle'
def channel = extensions.getExtraProperties().properties.get('channel')
if(channel == 1){
include ':pay-国内'
include ':share-国内'
include ':login-国内'
}else {
include ':share-国外'
include ':pay-国外'
include ':login-国外'
}
在 settings.gradle 做了依赖判断之后,那么之后编译运行都会根据这个 channle 按需去加载对应的 module。这样也是可以提高 gradle 编译速度的一个小点。
本文是笔者学习之后的总结,方便日后查看学习,有任何不对的地方请指正。
记录于 2020年3月21号
网友评论