使用gradle统一项目配置

问题所在

  在项目开发过程中,经常会有很多的module,而每个module下面都会依赖一些library,当项目越来越大的时候,这种分散在每个module下面单独的gradle配置依赖库的方式就很难以进行管理。

解决方式

  我们可以通过gradle的ext变量来建立一个公用的配置,这样其他的module中的gralde配置从这个公用配置中获取需要的信息来完成自身module的配置。这样既能够保证每个module下的依赖库版本是一致的,而且管理起来也十分的方便。

build.gradle

  首先我们来看看一个module下面的build.gradle文件的依赖库配置(这里只是举个栗子,比较简单,请以实际开发为准)。

1
2
3
4
5
6
7
8
//support
implementation "com.android.support:appcompat-v7:27.1.1"
implementation "com.android.support:design:27.1.1"
implementation "com.android.support:cardview-v7:27.1.1"
//retrofit
implementation "com.squareup.retrofit2:retrofit:2.3.0"
implementation "com.squareup.retrofit2:converter-gson:2.3.0"
implementation "com.squareup.retrofit2:adapter-rxjava2:2.3.0"

config.gradle

  然后我们在主工程的外层新建一个config.gradle(名字自取)文件,使用ext变量,它里面用map存放一些键值对的信息。下面是我写的一些配置。

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
ext {
versions = [
"android_support_version": "27.1.1",
"retrofit_version" : "2.3.0"
]
groups = [
"android_support": "com.android.support",
"retrofit2" : "com.squareup.retrofit2"
]
names = [
// support
"appcompat_v7" : "appcompat-v7",
"design" : "design",
"cardview_v7" : "cardview-v7",
// retrofit
"retrofit" : "retrofit",
"converter_gson" : "converter-gson",
"adapter_rxjava2": "adapter-rxjava2"
]
android_support = [
"appcompat_v7": "${groups.android_support}:${names.appcompat_v7}:${versions.android_support_version}",
"design" : "${groups.android_support}:${names.design}:${versions.android_support_version}",
"cardview_v7" : "${groups.android_support}:${names.cardview_v7}:${versions.android_support_version}"
]
retrofit2 = [
"retrofit" : "${groups.retrofit2}:${names.retrofit}:${versions.retrofit_version}",
"converter_gson" : "${groups.retrofit2}:${names.converter_gson}:${versions.retrofit_version}",
"adapter_rxjava2": "${groups.retrofit2}:${names.adapter_rxjava2}:${versions.retrofit_version}",
]
}

引入config.gradle

  配置文件写完了,那么如何将其引入到工程中呢,这个时候我们需要在主工程的build.gradle文件开头添加如下一句话。

1
apply from : "config.gradle"

这样重新构建一下,就能够将config.gradle文件引入到主工程中了。

修改module的build.gradle

  接下来我们来修改刚才module中的build.gradle文件,如下所示。

1
2
3
4
5
6
7
8
9
10
11
12
def support = rootProject.ext.android_support
def retrofit = rootProject.ext.retrofit2

dependencies {
implementation support.appcompat_v7
implementation support.design
implementation support.cardview_v7

implementation retrofit.retrofit
implementation retrofit.converter_gson
implementation retrofit.adapter_rxjava2
}

  修改完成后重新构建项目,ok,你会发现完全没有问题,这样我们就可以将其他module下的依赖库也通过相同的方式来引入,而当要修改依赖库版本相关信息的时候,只需要修改配置文件中的版本信息就可以了,这样是不是很方便呢?

本文标题:使用gradle统一项目配置

文章作者:严方雄

发布时间:2018-10-28

最后更新:2018-11-05

原始链接:http://yanfangxiong.com/2018/10/28/使用gradle统一项目配置/

0%