Android Gradle

自定义Gradle配置文件

1)创建自定义custom.gradle

ext {
    android = [
            compileSdkVersion : 30,
            buildToolsVersion : "30.0.2",
            minSdkVersion : 19,
            targetSdkVersion : 30
    ]

    dependencies = [
            "appcompat" : "androidx.appcompat:appcompat:1.2.0",
            "material" : "com.google.android.material:material:1.4.0",
            "constraintlayout" : "androidx.constraintlayout:constraintlayout:2.1.3",
			
			"glide" : "com.github.bumptech.glide:glide:4.11.0",

            // kotlin
            "kotlin-core-ktx" : "androidx.core:core-ktx:1.5.0",
            "kotlin-stdlib" : "org.jetbrains.kotlin:kotlin-stdlib:1.5.0",
            "kotlinx-coroutines-core" : "org.jetbrains.kotlinx:kotlinx-coroutines-core:1.5.0",
            "kotlinx-coroutines-android" : "org.jetbrains.kotlinx:kotlinx-coroutines-android:1.5.0",

            // Lifecycle
            "lifecycle-extensions" : "androidx.lifecycle:lifecycle-extensions:2.2.0",
            // Lifecycles only (without ViewModel or LiveData)
            "lifecycle-runtime-ktx" : "androidx.lifecycle:lifecycle-runtime-ktx:2.2.0",
            // viewModel
            "lifecycle-viewmodel-ktx" : "androidx.lifecycle:lifecycle-viewmodel-ktx:2.2.0",
            // LiveData库
            "lifecycle-livedata-ktx" : "androidx.lifecycle:lifecycle-livedata-ktx:2.2.0",
            // Saved state module for ViewModel
            "lifecycle-viewmodel-savedstate" : "androidx.lifecycle:lifecycle-viewmodel-savedstate:2.2.0",
            // Annotation processor
            // kapt rootProject.ext.dependencies["lifecycle-compiler"]
            "lifecycle-compiler" : "androidx.lifecycle:lifecycle-compiler:2.2.0",
            // alternately - if using Java8, use the following instead of lifecycle-compiler
            "lifecycle-common-java8" : "androidx.lifecycle:lifecycle-common-java8:2.2.0",
            // optional - ReactiveStreams support for LiveData
            "lifecycle-reactivestreams-ktx" : "androidx.lifecycle:lifecycle-reactivestreams-ktx:2.2.0",

            // retrofit
            "retrofit" : "com.squareup.retrofit2:retrofit:2.9.0",
            "retrofit-mock" : "com.squareup.retrofit2:retrofit-mock:2.9.0",
            "retrofit-converter-gson" : "com.squareup.retrofit2:converter-gson:2.9.0",
            "retrofit-converter-scalars" : "com.squareup.retrofit2:converter-scalars:2.9.0",
            "retrofit-adapter-rxjava2" : "com.squareup.retrofit2:adapter-rxjava2:2.9.0",

            // Gson
            "gson" : "com.google.code.gson:gson:2.8.6",

            // Okhttp
            "okhttp" : "com.squareup.okhttp3:okhttp:5.0.0-alpha.2",
            "okhttp-logging-interceptor" : "com.squareup.okhttp3:logging-interceptor:5.0.0-alpha.2",
            
            // RxJava
            "rxjava2-rxandroid" : "io.reactivex.rxjava2:rxandroid:2.0.1",
            "rxjava2-rxjava" : "io.reactivex.rxjava2:rxjava:2.1.3",
    ]
}

2)在build.gradle中引入自定义gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

// ***************** 就是加入这个 *****************
apply from : "custom.gradle"

buildscript {
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath "com.android.tools.build:gradle:4.2.0"

        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }
}

3)替换app/build.gradle中的内容

plugins {
    id 'com.android.application'
}

android {
    compileSdkVersion rootProject.ext.android["compileSdkVersion"]
    buildToolsVersion rootProject.ext.android["buildToolsVersion"]

    defaultConfig {
        applicationId "com.example.mycustomgradleconfigtest"
        minSdkVersion rootProject.ext.android["minSdkVersion"]
        targetSdkVersion rootProject.ext.android["targetSdkVersion"]
        versionCode 1
        versionName "1.0"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation rootProject.ext.dependencies["appcompat"]
    implementation rootProject.ext.dependencies["material"]
    implementation rootProject.ext.dependencies["constraintlayout"]
    
    // glide
    implementation rootProject.ext.dependencies["glide"]
    
    // kotlin
    implementation rootProject.ext.dependencies["kotlin-core-ktx"]
    implementation rootProject.ext.dependencies["kotlin-stdlib"]
    implementation rootProject.ext.dependencies["kotlinx-coroutines-core"]
    implementation rootProject.ext.dependencies["kotlinx-coroutines-android"]

    // Lifecycle
    implementation rootProject.ext.dependencies["lifecycle-extensions"]
    implementation rootProject.ext.dependencies["lifecycle-runtime-ktx"]
    implementation rootProject.ext.dependencies["lifecycle-viewmodel-ktx"]
    implementation rootProject.ext.dependencies["lifecycle-livedata-ktx"]
    implementation rootProject.ext.dependencies["lifecycle-viewmodel-savedstate"]
    kapt rootProject.ext.dependencies["lifecycle-compiler"]
    implementation rootProject.ext.dependencies["lifecycle-common-java8"]
    implementation rootProject.ext.dependencies["lifecycle-reactivestreams-ktx"]

    // retrofit
    implementation rootProject.ext.dependencies["retrofit"]
    implementation rootProject.ext.dependencies["retrofit-mock"]
    implementation rootProject.ext.dependencies["retrofit-converter-gson"]
    implementation rootProject.ext.dependencies["retrofit-converter-scalars"]
    implementation rootProject.ext.dependencies["retrofit-adapter-rxjava2"]

    // Gson
    implementation rootProject.ext.dependencies["gson"]
    
    // Okhttp
    implementation rootProject.ext.dependencies["okhttp"]
    implementation rootProject.ext.dependencies["okhttp-logging-interceptor"]
    
    // RxJava
    implementation rootProject.ext.dependencies["rxjava2-rxandroid"]
    implementation rootProject.ext.dependencies["rxjava2-rxjava"]
}

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值