Android 模块依赖版本管理

Android 模块依赖版本管理

由于 Android 模块化的需要,依赖库要保持统一,但是每次一旦某个模块版本变动,就要手动修改所有模块的版本号未免显得有些繁琐,而且有一些共用的模块可能在不同的项目中要使用不同的版本.所以需要一个统一管理版本模块的方法.

步骤

1. 在项目主目录下新建一个名为 dependency.gradle 的文件

2. 在该文件写入配置信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
ext {
ext.deps = [:]
def deps = [:]
// 统一的版本号管理
def versions = [:]
versions.kotlin = "1.3.70"
versions.android_gradle_plugin = "3.5.2"
versions.appcompat = "1.1.0"
versions.dagger = "2.16"
versions.material = "1.2.0-alpha03"
versions.work = "2.3.0-alpha01"
versions.retrofit = "2.3.0"
versions.recyclerview = "1.1.0"
versions.okhttp = "3.0.1"
versions.guava = "20.0"
versions.navigation = "2.3.0-alpha01"
versions.multidex = "1.0.0"
//------------------------------------------------------------------------------
// 一组依赖可以使用这个方式
def navigation = [:]
navigation.runtime = "androidx.navigation:navigation-runtime:$versions.navigation"
navigation.runtime_ktx = "androidx.navigation:navigation-runtime-ktx:$versions.navigation"
navigation.fragment = "androidx.navigation:navigation-fragment:$versions.navigation"
// 这句要记得
deps.navigation = navigation
...
// 单个依赖可以使用这中方式
deps.app_compat = "androidx.appcompat:appcompat:$versions.appcompat"
// app 本身的版本管理也可以放进来
def build_versions = [:]
build_versions.min_sdk = 19
build_versions.compile_sdk = 29
build_versions.target_sdk = 29
build_versions.build_tools = "29.0.3"
ext.build_versions = build_versions
ext.deps = deps
}

如上图所示,配置文件就完成了

3. 使用

在 root 目录下的 build.gradle 中加上 apply from: "dependency.gradle"

在需要添加依赖的 Module 中使用,如下

1
2
3
4
5
6
7
8
9
10
android {
compileSdkVersion build_versions.compile_sdk
buildToolsVersion build_versions.buildToolsVersion
defaultConfig {
minSdkVersion build_versions.minSdkVersion
...
}
}
1
2
3
4
5
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
implementation deps.app_compat
implementation deps.navigation.runtime
}

tip

在多应用的情况下,最好是有一个统一的文档对所有的依赖名等做一个规范,避免出现不同项目使用了不同的命名.

进阶

当我们有多个项目的时候,使用同样的一份依赖可以免去大量的重复工作,和版本适配问题.这个时候其实也很简单

本地版

1
apply from: "../../AndroidShareLib/gradle/dependency.gradle"

我们只需要放在一个共有目录下进行索引即可,这样两个项目都可以复用这个依赖文件

网络版

将这个gradle 放在网上,比如git仓库中,然后这里使用连接引用即可

Reference

APP 版本控制

About Me

我的博客 leonchen1024.com

我的 GitHub https://github.com/LeonChen1024

微信公众号

wechat

You forgot to set the business and currency_code for Paypal. Please set it in _config.yml.
You forgot to set the url Patreon. Please set it in _config.yml.
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×