天天看点

Android-Gradle依赖统一管理

1.在project的根目录创建gradle类型的文件,配置如下:

ext {
    //名称可以自定义
    android = [
            //左边名称自定义,右边版本号
            compileSdkVersion: 26,
            minSdkVersion    : 21,
            targetSdkVersion : 26
    ]

    //左边名称自定义,右边版本号,给下面依赖库进行版本号支持
    supportVersion = "26.1.0"

    dependencies = [
            //左边名称自定义,com.android.support:appcompat-v7为引用,${supportVersion}引用上面的版本号
            appcompatV7: "com.android.support:appcompat-v7:${supportVersion}"
    ]
}
           

2.在project中的gradle文件引入新创建的gradle

apply from: 'versions.gradle'   //此处引入新创建的文件
buildscript {
    repositories {
        google()
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:3.0.1'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
    }
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
           

3.module的gradle配置

apply plugin: 'com.android.application'

def config = rootProject.ext.android    //def关键字,名称可以自定义,但是不要和本文件内的关键字同名,引入在根目录创建的gradle文件的android一段
def lib = rootProject.ext.dependencies  //同上

android {
    //android一些版本号的配置
    compileSdkVersion config.compileSdkVersion  //引用对应的版本
    defaultConfig {
        applicationId "com.aib.ndk"
        minSdkVersion config.minSdkVersion
        targetSdkVersion config.targetSdkVersion
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.android.support.constraint:constraint-layout:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'com.android.support.test:runner:1.0.1'
    androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'

    //第三方依赖包版本号配置
    implementation lib.appcompatV7
}