简单管理Android Studio中的Gradle依赖

随着项目中module数量的增大,随之而来的就是build.gradle文件中的依赖管理越来越复杂。。。
说了两句废话,下面直接说解决方法:

  1. 修改工程根目录下的build.gradle
apply from: 'config.gradle'
  1. 具体module下的依赖添加方式,重点就是第一行
// 重点在此
implementation rootProject.ext.libs

def testLibs = rootProject.ext.testLibs
testImplementation testLibs[0]
androidTestImplementation testLibs[1, 2] // list子集

def otherLibs = rootProject.ext.otherLibs
// Glide
annotationProcessor otherLibs["glideCompiler"]
  1. 下面看一下的config.gradle书写方式
    android = [
            minSdkVersion    : 15,
            targetSdkVersion : 27,
            compileSdkVersion: 29,
            buildToolsVersion: '28.0.3'
    ]

    versions = [
            retrofit: '2.3.0',
            glide   : '4.10.0',
            junit   : '4.12'
    ]

    libs = [
            // AndroidX
            'androidx.appcompat:appcompat:1.0.0',

            'androidx.core:core-ktx:1.1.0',
            'androidx.annotation:annotation:1.1.0',
            "androidx.recyclerview:recyclerview:1.1.0",

            // Retrofit
            "com.squareup.retrofit2:retrofit:$versions.retrofit",
            "com.squareup.retrofit2:converter-gson:$versions.retrofit",
            'com.squareup.okhttp3:logging-interceptor:3.9.0',
            'com.jakewharton.retrofit:retrofit2-rxjava2-adapter:1.0.0',

            // Glide
            'com.github.bumptech.glide:glide:' + versions.glide,
            'com.github.bumptech.glide:okhttp3-integration:' + versions.glide,
            'jp.wasabeef:glide-transformations:2.0.1',

            // Kotlin
            "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
    ]

    testLibs = [
            "junit:junit:" + versions.junit,

            "androidx.test.ext:junit:1.1.1",
            "androidx.test:rules:1.2.0"
    ]

    otherLibs = [
            glideCompiler: 'com.github.bumptech.glide:compiler:' + versions.glide
    ]
}

总结

Gradle依赖管理的目的就是下面两点:

  • 添加依赖简单
  • 方便进行统一的版本控制

控制台提示的依赖添加方式:

The following types/formats are supported:
  - Instances of Dependency.
  - String or CharSequence values, for example 'org.gradle:gradle-core:1.0'.
  - Maps, for example [group: 'org.gradle', name: 'gradle-core', version: '1.0'].
  - FileCollections, for example files('some.jar', 'someOther.jar').
  - Projects, for example project(':some:project:path').
  - ClassPathNotation, for example gradleApi().

欢迎提出问题,一起讨论,更欢迎指出更好的依赖添加方式。

参考

  1. Android Studio 中 Gradle 依赖的统一管理
  2. gradle使用技巧(def定义变量 rootProject.ext 添加全局变量)
  3. Kotlin之美——DSL篇
  4. Groovy List 常用操作

你可能感兴趣的:(简单管理Android Studio中的Gradle依赖)