美文网首页
Gradle 统一版本管理

Gradle 统一版本管理

作者: 夜瑾漠 | 来源:发表于2020-02-06 15:59 被阅读0次

    Gradle 统一版本管理

    Gradle统一管理的目的是减少版本中的修改量以及避免漏修改的问题。

    [TOC]

    一、在项目顶级目录中创建一个新的myApplication.gradle文件

    名称自定义,与最外层的build.gradle同级

    1、gradle文件创建

    工程结构预览

    2、然后在该gradle中编写内容:

    ext {
        android = [
                applicationId    : 'com.dionysus.display',
                compileSdkVersion: 28,
                minSdkVersion    : 21,
                targetSdkVersion : 28,
                versionCode      : 1,
                versionName      : '1.0'
        ]
    }
    

    写完之后记得Sync Now

    二、在项目最外层的build.gradle中依赖刚刚创建的myApplication.gradle

    apply from: 'myApplication.gradle'
    
    或者
    
    apply from: this.rootProject.file('myApplication.gradle')
    

    以上两种写法都没有问题

    三、修改App下build.gradle中的内容

    1、原先的写法

    android {
        compileSdkVersion 28
        defaultConfig {
            applicationId "com.dionysus.display"
            minSdkVersion 21
            targetSdkVersion 28
            versionCode 1
            versionName "1.0"
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
    }
    

    2、修改后的写法

    android {
        compileSdkVersion this.rootProject.android.compileSdkVersion
        defaultConfig {
            applicationId this.rootProject.android.applicationId
            minSdkVersion this.rootProject.android.minSdkVersion
            targetSdkVersion this.rootProject.android.targetSdkVersion
            versionCode this.rootProject.android.versionCode
            versionName this.rootProject.android.versionName
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
    }
    

      这样写的话就很方便我们统一管理gradle中的内容,比方说,我们工程中module比较多,在进行AndroidSDK版本升级的时候,就不会出现漏修导致上架失败的问题。

    四、依赖统一管理

    1、myApplication.gradle

    dependencies = [
                appcompat       : 'com.android.support:appcompat-v7:28.0.0',
                constraintLayout: 'com.android.support.constraint:constraint-layout:1.1.3'
        ]
    

    2、build.gradle

    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation this.rootProject.ext.dependencies.appcompat
        implementation this.rootProject.ext.dependencies.constraintLayout
    }
    

    五、优化

    在使用的地方可以将

    this.rootProject.ext.android
    

    抽取出来

    apply plugin: 'com.android.application'
    
    def config = this.rootProject.ext.android
    def deps = this.rootProject.ext.dependencies
    
    android {
        compileSdkVersion config.compileSdkVersion
        defaultConfig {
            applicationId config.applicationId
            minSdkVersion config.minSdkVersion
            targetSdkVersion config.targetSdkVersion
            versionCode config.versionCode
            versionName config.versionName
            testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        }
        buildTypes {
            release {
                minifyEnabled false
                proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
            }
        }
    }
    
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation deps.appcompat
        implementation deps.constraintLayout
        testImplementation 'junit:junit:4.12'
        androidTestImplementation 'com.android.support.test:runner:1.0.2'
        androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
    }
    

    相关文章

      网友评论

          本文标题:Gradle 统一版本管理

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