美文网首页Android备忘录
[备忘]Android Studio 简单管理依赖包版本

[备忘]Android Studio 简单管理依赖包版本

作者: 吴彦辉 | 来源:发表于2017-02-18 12:12 被阅读21次

    前言

    当一个app存在着很多module,并且module当中又有重复的依赖引用,10个module可以手动一个个改,那么100个module呢?手动改,那你手就要废了。

    如何统一管理

    先看看下面这句代码,经常可以看到其他开源项目中build.gradle有这句引用

    apply from: "config.gradle" // 引入该文件,加载root build.gradle当中,所有的module就都可以使用
    

    在根目录当中创建config.gradle,那么config.gradle当中又哪些内容呢,来看一下我的配置清单

    //这边很熟悉吧,不用再解释
    ext {
        android = [
                minSdkVersion    : 15,
                targetSdkVersion : 22,
                compileSdkVersion: 25,
                buildToolsVersion: "25.0.0",
                applicationId    : "com.xxx.app.xxx",//包名
                versionCode      : 3,//版本号
                versionName      : "1.0.2"
        ]
    //google的支持包版本
        support=[
                support_version:"25.0.0"
        ]
    //其他第三方
        other=[
                retrofit:"2.1.0",
                rxjava:"1.1.7",
                rxandroid:"1.2.1",
                okhttp:"3.3.1",
                butterknife:"7.0.1",
                material_dialogs:"0.9.1.0",
                baseitemlayoutlibrary:"2.1.1",
                gson:"2.2.4",
                recovery:"0.0.8",
                multidex:"1.0.1",
                fragmentation:"0.10.1",
                WheelPicker:"1.2.4"
        ]
    
    }
    

    接着引入该文件,上面已经讲过了。

    使用方式

    def support = rootProject.ext.support
    def other = rootProject.ext.other
    def dev = rootProject.ext.android 拆分一下rootProject//固定的方法,ext 也是固定的方法 ,android 这个就是config.gradle定义的android。
    android {
        compileSdkVersion dev.compileSdkVersion  //一一对应使用,以下都是类似
        buildToolsVersion dev.buildToolsVersion
    
        //recommend
        dexOptions {
            jumboMode = true
        }
        defaultConfig {
            applicationId dev.applicationId
            minSdkVersion dev.minSdkVersion
            targetSdkVersion dev.targetSdkVersion
            versionCode dev.versionCode
            versionName dev.versionName
    }
    }
    
    dependencies {
        compile fileTree(include: ['*.jar'], dir: 'libs')
        compile 'com.android.support:support-annotations:' + support.support_version
        compile 'com.android.support:appcompat-v7:' + support.support_version
        compile 'com.android.support:design:' + support.support_version
        compile 'com.android.support:cardview-v7:' + support.support_version
        compile 'com.android.support:recyclerview-v7:' + support.support_version
        compile 'com.squareup.retrofit2:retrofit:' + other.retrofit
        compile 'com.squareup.retrofit2:adapter-rxjava:' + other.retrofit
        compile 'com.squareup.retrofit2:converter-gson:' + other.retrofit
        compile 'io.reactivex:rxjava:' + other.rxjava
        compile 'io.reactivex:rxandroid:' + other.rxandroid
        compile 'com.squareup.okhttp3:okhttp:' + other.okhttp
        compile 'com.squareup.okhttp3:logging-interceptor:' + other.okhttp
        compile 'com.jakewharton:butterknife:' + other.butterknife
        compile 'com.afollestad.material-dialogs:commons:' + other.material_dialogs
        compile 'com.maiml:baseitemlayoutlibrary:' + other.baseitemlayoutlibrary
        compile 'com.android.support:multidex:' + other.multidex
        compile 'me.yokeyword:fragmentation:' + other.fragmentation
    }
    

    这样你所有的module都可以这样使用来进行版本控制。

    小记

    这是参考其他同志的写法,如果你有更好的方式,欢迎帮我提出,记录在这。以备后用。谢谢

    相关文章

      网友评论

        本文标题:[备忘]Android Studio 简单管理依赖包版本

        本文链接:https://www.haomeiwen.com/subject/mubrwttx.html