Gradle依赖统一管理

为什么要进行gradle依赖统一管理?

当项目开始越来越大的时候,模块也越来越多的时候,这时候统一管理就显的非常必要,只需修改一个地方就可以了,减少不必要的工作量。而且,可以避免每个模块依赖不同的版本导致依赖冲突的情况。

1

首先我们在project下新建.gradle文件,可以叫“common_config.gradle”,然后将要统一管理的信息写到这个文件里。

ext {
    android = [
            compileSdkVersion: 27,
            buildToolsVersion: "26.0.2",
            applicationId    : "com.lkp.modulesets",
            minSdkVersion    : 15,
            targetSdkVersion : 27,
            versionCode      : 1,
            versionName      : "1.0.0"
    ]

    dependencies = [

            "constraint-layout"     : 'com.android.support.constraint:constraint-layout:1.1.2',
            "appcompat-v7"          : 'com.android.support:appcompat-v7:27.1.1',
            "design"                : 'com.android.support:design:27.1.1',
            "gson"                  : 'com.google.code.gson:gson:2.8.5',
            "glide"                 : 'com.github.bumptech.glide:glide:4.8.0',
            "glide-compiler"        : 'com.github.bumptech.glide:compiler:4.8.0',

            /**
             * Libraries(Local)
             */
            "threadpool"            : project(':threadpool')
    ]
}

2

然后在Project的build.gradle中添加
apply from: "common_config.gradle"

3

然后在modle或者app中添加引用,如在app的引用

apply plugin: 'com.android.application'

android {
    compileSdkVersion rootProject.ext.android.compileSdkVersion
    defaultConfig {
        applicationId rootProject.ext.android.applicationId
        minSdkVersion rootProject.ext.android.minSdkVersion
        targetSdkVersion rootProject.ext.android.targetSdkVersion
        versionCode rootProject.ext.android.versionCode
        versionName rootProject.ext.android.versionName
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation rootProject.ext.dependencies["constraint-layout"]
    implementation rootProject.ext.dependencies["appcompat-v7"]
    implementation rootProject.ext.dependencies["design"]
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 简介android是开源的,是共享的,绝大部分人可能都喜欢把代码上传到github,一方面用于保存自己的项目,另一...
    世道无情阅读 1,586评论 0 0
  • 门一打开,何璐就抱着我一阵痛哭,足足哭了15分钟。 我看着她刚割完的双眼皮,再加上每天以泪洗脸,双眼已经肿得像两颗...
    MrLeong阅读 2,383评论 0 0
  • 轻易让别人知道你脆弱的地方只会让别人瞧不起你。 太过情绪化是一种幼稚的表现。 只要有一颗敢于发现乐趣的心,你的世界...
    nocareAustere阅读 994评论 0 0
  • 时隔11年。即使今天姐姐我才下大夜班,满脑子转着星星月亮、蝶舞蜂飞,跟喝了二两酒没太大区别,可还是要见面啊! 相约...
    晓天狼星阅读 1,235评论 2 2