一、为什么要合并
当项目中model或library变多过后,比如用到组件化或者引入第三方库需要配置多个build gradle文件,一旦需要统一其SDK或者其他组件版本就需要同时修改多个文件,这确实很麻烦,所以抽取gradle配置非常有必要。抽取过后如果想修改版本, 只需修改公共文件的就可以了。
二、怎么操作文件
1. 新建gradle文件夹
1. 作用: 存放抽取的公用gradle文件
2. 操作步骤
在项目主目录新建gradle文件夹(Directory)
在gradle文件夹下新建androi.gradle文件
拷贝app.gradle里全部内容, 在此基础上做修改
首先修改第一行的文件类型声明方式
原本: apply from: 'com.android.application'
修改为: project.plugins.apply("com.android.application")
现在到app.gradle或者其他model内引入(如果是library也是同理, 只是文件类型不同, 不需要applicationID), build一下引用成功了
apply from: '../gradle/android.gradle'
2. 新建config文件夹
1. 作用: 存放sdk等版本号公共配置文件
2. 操作步骤
在项目主目录新建config文件夹
再建立子文件config.gradle(当然也可以就放在gradle文件夹下)
在project下引入
apply from: '/config/config.gradle'
编写配置内容,以model为例:
ext {
androidVersion = [
minSdkVersion : 23,
targetSdkVersion : 29,
versionCode : 1,
versionName : '1.0.0',
compileSdkVersion : 29,
buildToolsVersion : '29.0.2',
applicationId : 'com.xxx.plugin_package'
]
}
5.在android.gradle中定义
def config = rootProject.ext.androidVersion
6.在android.gradle中使用
三、结束
上文为一个抽取公共配置的样例, 包括其他很多的属性都可以以此方法进行抽取合并, 包括依赖.