Gradle依赖包全局配置管理

在项目开发过程中,如果项目庞大,依赖多个子工程,而每个子工程又对同样的依赖库有引用,当依赖库版本号发生变化的时候,就需要对每个依赖库进行管理,比较繁琐,并且不同的子工程依赖不同的库,也造成了依赖库的管理混乱。

下面就通过两种方式,介绍一下gradle依赖库的管理。

方式一

project目录下新建一个config.gradle文件,如下:

// Define versions in a single place
ext {
    // Sdk and tools
    minSdkVersion = 14
    targetSdkVersion = 21
    compileSdkVersion = 26
    buildToolsVersion = '26.0.2'
    supportLibraryVersion = '26.0.2'

    versionCode = 100
    versionName = "1.0.0"

    dependencies = [
            "appcompat-v7"            : "com.android.support:appcompat-v7:$supportLibraryVersion",
            "recyclerview-v7"         : "com.android.support:recyclerview-v7:$supportLibraryVersion",
            "design-v7"               : "com.android.support:design:$supportLibraryVersion",
            "multidex"                : "com.android.support:multidex:1.0.2",
            "okhttp"                  : "com.squareup.okhttp3:okhttp:3.9.0",
            "gson"                    : "com.google.code.gson:gson:2.8.0",
            "ormlite"                 : "com.j256.ormlite:ormlite-android:5.0",
            "umeng-analytics"         : "com.umeng.analytics:analytics:6.1.0",
            "jpush"                   : "cn.jiguang.sdk:jpush:3.0.3",
            "jpush-core"              : "cn.jiguang.sdk:jcore:1.1.1",
            "easypermissions"         : "pub.devrel:easypermissions:1.0.1",
            "lottie"                  : "com.airbnb.android:lottie:2.2.3",
            "glide"                   : "com.github.bumptech.glide:glide:4.4.0",
            "glide-transformations"   : "jp.wasabeef:glide-transformations:3.0.1",
            "glide-bumptech-compiler" : "com.github.bumptech.glide:compiler:4.4.0",
            "eventbus"                : "org.greenrobot:eventbus:3.0.0",
            "zxing"                   : "com.google.zxing:core:3.1.0",
            "cymchad-rvadapter-hepler": "com.github.CymChad:BaseRecyclerViewAdapterHelper:2.9.31",
            "tinker-android-lib"      : "com.tencent.tinker:tinker-android-lib:1.9.2",
    ]

}

然后,在project下的build.gradle文件中,增加对config.gradle的引用,如下:

apply from: "config.gradle"

接下来,在主工程或子工程中获取依赖并使用,如下:

apply plugin: 'com.android.library'
apply plugin: 'maven'

def librarys = rootProject.ext.dependencies

...

dependencies {
    api fileTree(include: ['*.jar'], dir: 'libs')
    api project(':social_sdk_library')
    api librarys["appcompat-v7"]
    api librarys["okhttp"]
    api librarys["gson"]
    api librarys["ormlite"]
    api librarys["umeng-analytics"]
    api librarys["jpush"]
    api librarys["jpush-core"]
    api librarys["easypermissions"]
    api librarys["lottie"]
    api librarys["glide"]
    api librarys["glide-transformations"]
    annotationProcessor librarys["glide-bumptech-compiler"]
}
...

方式二

project根目录下属性文件gradle.properties中进行配置,Google I/O 2015用的就是这种方式。

gradle.properties中配置相应的版本号:

multidex_version=1.0.2
okhttp_version=3.9.0

app/build.gradle中使用:

dependencies {
    api fileTree(dir: 'libs', include: ['*.jar'])
    api "com.android.support:multidex:${multidex_version}"
    api "com.squareup.okhttp3:okhttp::${okhttp_version}"
}

OK,到此,就借助于ext帮助我们解决了依赖包的版本管理和耦合太紧的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值