wustor / GradleModule

Gradle模块化设置,通过实现gradle脚本相互依赖以及通过遍历Map的形式添加依赖,优化app目录下的build.gradle脚本

Home Page:http://wustor.tech/2017/12/03/Gradle%E6%A8%A1%E5%9D%97%E5%8C%96%E9%85%8D%E7%BD%AE%EF%BC%9A%E8%AE%A9%E4%BD%A0%E7%9A%84gradle%E4%BB%A3%E7%A0%81%E6%8E%A7%E5%88%B6%E5%9C%A8100%E8%A1%8C%E4%BB%A5%E5%86%85/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

exclude配置

其实我的博客里面忽略了一种情况,就是dependencies中有需要exclude的情况,多谢Vanish提出了这个问题,如果单纯的去遍历一个map是不可以的,比如说下面Glide的配置情况

   compile("com.github.bumptech.glide:glide:4.3.1") {
   exclude(group: 'com.android.support', module: 'support-v4')
    exclude(group: 'com.android.support', module: 'appcompat-v7')
    exclude(group: 'com.squareup.okhttp3', module: 'okhttp3')
}

对于这种情况的话,需要额外定义一个关于exclude的map,因为可能多个依赖需要exclude,下面就用Glide举个栗子:

config.gradle

map的key是compile的依赖,然后value是一个数组,因为有可能需要剔除多个重复依赖,所以用数组来表示

excludes = ["com.github.bumptech.glide:glide:4.3.1":
                    [
                            'com.android.support' : 'support-v4',
                            'com.android.support' : 'appcompat-v7',
                            'com.squareup.okhttp3': 'okhttp3']]

build.gradle

excludes.each { entry ->
        compile(entry.key) {
            entry.value.each { childEntry ->
                exclude(group: childEntry.key, module: childEntry.value)
            }
        }
    }

然后在build.gradle中拿到这个map,然后进行遍历就好,代码已上传,有需要的可以下载进行查看。

About

Gradle模块化设置,通过实现gradle脚本相互依赖以及通过遍历Map的形式添加依赖,优化app目录下的build.gradle脚本

http://wustor.tech/2017/12/03/Gradle%E6%A8%A1%E5%9D%97%E5%8C%96%E9%85%8D%E7%BD%AE%EF%BC%9A%E8%AE%A9%E4%BD%A0%E7%9A%84gradle%E4%BB%A3%E7%A0%81%E6%8E%A7%E5%88%B6%E5%9C%A8100%E8%A1%8C%E4%BB%A5%E5%86%85/


Languages

Language:Python 53.7%Language:Java 46.3%