Gradle依赖的统一管理
16lz
2021-01-26
在项目开发中我们会经常引入多个Module,然而每个Module中又包含了V4、V7,为了升级新版本依赖包只用更改一次,我们决定采用Gradle依赖的统一管理,避免重复繁琐的劳动。
在Project目录下新建config.gradle文件(文件名字可以自定义)
ext { android = [ compileSdkVersion: 26, buildToolsVersion: "26.0.2", applicationId : "com.wj.baseutils", minSdkVersion : 15, targetSdkVersion : 26, versionCode : 1, versionName : "1.0.0" ] def dependVersion = [ support : "26.1.0", butterknife: "8.8.1", glide : "4.5.0", ] dependencies = [ //base "support-v4" : "com.android.support:support-v4:${dependVersion.support}", "appcompat-v7" : "com.android.support:appcompat-v7:${dependVersion.support}", "annotations" : "com.android.support:support-annotations:${dependVersion.support}", "constraint-layout" : "com.android.support.constraint:constraint-layout:1.0.2", //test "junit" : "junit:junit:4.12", "runner" : "com.android.support.test:runner:1.0.1", "espresso-core" : "com.android.support.test.espresso:espresso-core:3.0.1", //eventbus "eventbus" : "org.greenrobot:eventbus:3.1.1", //butterknife "butterknife" : "com.jakewharton:butterknife:${dependVersion.butterknife}", "butterknife-compiler": "com.jakewharton:butterknife-compiler:${dependVersion.butterknife}", //Glide "glide" : "com.github.bumptech.glide:glide:${dependVersion.glide}", "glide-compiler" : "com.github.bumptech.glide:compiler:${dependVersion.glide}" ]}
然后在Project的build.gradle中添加
apply from: "config.gradle"
在modle或者app中添加引用
apply plugin: 'com.android.library'android { compileSdkVersion rootProject.ext.android.compileSdkVersion defaultConfig { minSdkVersion rootProject.ext.android.minSdkVersion targetSdkVersion rootProject.ext.android.targetSdkVersion versionCode rootProject.ext.android.versionCode versionName rootProject.ext.android.versionName 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 rootProject.ext.dependencies["constraint-layout"] //test testImplementation rootProject.ext.dependencies["junit"] androidTestImplementation rootProject.ext.dependencies["runner"] androidTestImplementation rootProject.ext.dependencies["espresso-core"] //support api(rootProject.ext.dependencies["support-v4"]) { exclude module: 'support-annotations' } api(rootProject.ext.dependencies["appcompat-v7"]) { exclude module: 'support-v4' } api rootProject.ext.dependencies["annotations"] //eventbus api rootProject.ext.dependencies["eventbus"] //butterknife api(rootProject.ext.dependencies["butterknife"]) { exclude module: 'support-annotations' } annotationProcessor rootProject.ext.dependencies["butterknife-compiler"] //glide api(rootProject.ext.dependencies["glide"]) { exclude module: 'support-fragment' } annotationProcessor(rootProject.ext.dependencies["glide-compiler"]) { exclude module: 'jsr305' }}
更多相关文章
- Android(安卓)文件夹介绍
- Android(安卓)Studio的一些小技巧
- Unable to resolve dependency for ......
- 关于Android(安卓)的导入android.support.v4包解决ContextCompat
- Android-NDK入门续
- 关于ScrollView嵌套RecyclerView时RecyclerView不显示的问题
- Unity与Android的问题
- android studio使用教程(六) project和module gradle脚本查看
- 用桌面做应用的背景