android stuido读取其他gradle配置文件和如何统一项目的依赖

版权声明:本文为博主原创文章,转载希望能注明出处,感谢。 https://blog.csdn.net/u010126792/article/details/82835776

1 统一项目依赖

       组件化开发,插件化开发成为了项目了标配,android项目中会引入大量依赖,类似v4,v7如果组件和最终编译app的依赖版本不同,可能导致程序崩溃。如果不通过读取配置文件而是要求各个module单独维护版本统一的依赖显然不太现实,除非只有一两个人,否则某个module添加了一个依赖还要反馈给其他用户很麻烦。

     Gradle中可以通过引入gradle配置文件的方式,实现依赖等的统一,在项目根目录定义gradle配置文件config.gradle,然后在根目录下的build.gradle通过apply from进行引入,然后各个module就可以通过配置文件获取依赖版本,如果没有自己需要的依赖可以添加到配置文件中,然后同步到服务器上就可以了。

config.gradle 定义方式:

ext {
    android = [
            compileSdkVersion: 26,
            buildToolsVersion: "26.0.1",

            minSdkVersion    : 19,
            targetSdkVersion : 25,

            VSupportSdk      : '26.0.1',
            VRecyclerView    : '26.0.1',

    ]
    dependencies = [
            minSdkVersion    : 19,
            "appcompat-v7"              : "com.android.support:appcompat-v7:${android["VSupportSdk"]}",
            "recyclerView"              : "com.android.support:recyclerview-v7:${android["VRecyclerView"]}",
            //design
            "design"                    : "com.android.support:design:${android["VSupportSdk"]}",
            "annotation"                      :"com.android.support:support-annotations:${android["VSupportSdk"]}",
               ]

}

引入方式:

//根目录下的build.gradle
apply from: "config.gradle"

使用方式:

minSdkVersion rootProject.ext.android.minSdkVersion

compile rootProject.ext.dependencies["appcompat-v7"]
compile rootProject.ext.dependencies["recyclerView"]

2 gradle配置文件读取

Gradle中读取配置文件的常用方式:

2.1 在module目录下,gradle.properties中定义变量

COMPILE_SDK_VERSION=27
TARGET_SDK_VERSION=27
MIN_SDK_VERSION=14
PUBLISH_CONFIG=release

然后就可以直接在同级别的build.gradle中读取了。

minSdkVersion Integer.valueOf(MIN_SDK_VERSION)
targetSdkVersion Integer.valueOf(TARGET_SDK_VERSION)
versionCode Integer.valueOf(VERSION_CODE)
versionName VERSION_NAME

如果在project根目录下的gradle.properties中定义变量,则项目中所有module的build.gradle都可以使用。

2.2 读取gradle配置文件获取变量

       最常用的配置是在project根目录下生成config.gradle配置文件,然后所有的module就可以共享配置文件,这样做可以统一整个项目不同module编译版本,引入的外部依赖,否则如果开发不同module的同事使用了不同版本的依赖,可能导致程序兼容性问题,例如我遇到的一个组件使用的v7和最终app使用的v7版本不同,导致在设置RecycleView的默认动画时导致崩溃。

自定义配置文件:写法第一部分已经说明,放在默认ext中就行。

引入配置文件:

获取配置属性:

项目根目录下的build.gradle引入的其他配置文件,在整个项目中都可以使用,如果单个module引入gradle配置文件,获取属性的方式有点区别。

第一种情况是如果module的build.gradle引入的配置文件和gradle是同一个目录下(同级,都是当前module根目录下);

第二种情况是引入的配置文件在项目的根目录下,和module的build.gradle不是同一个目录。

经试验引用时需要加入this才能正常引用。

猜你喜欢

转载自blog.csdn.net/u010126792/article/details/82835776
今日推荐