Gradle-初始化配置阶段优化

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号

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容