最近在整理项目框架,这篇文章主要结合项目介绍一下两个配置文件的使用:config.gradle文件和dependencies.gradle文件。当我们项目中有多个module时,存在多个配置文件,我们会提取出公共的依赖部分,还有一些共用版本配置等,放在这两个文件中,这样,我们如果需要升级,那么只需要改动这两个文件中的内容就可以了,避免需要每个配置文件都翻一遍。我的项目中两个文件都用到了,config.gradle主要是版本号配置信息,是所有module都需要的,dependencies.gradle是放置依赖的框架,我是在其他每个需要引入框架的module中单独引入dependencies.gradle,如果一个module用不到依赖的代码,我就不会导入。所以,如果不需要像我这样区分版本号管理和依赖,一个config.gradle文件或者dependencies.gradle文件就足够用了。下文会详细表述。

下面先介绍一下目前我项目中的配置。

1.config.gradle

我的项目中有多个module,所以希望将一些依赖或者版本信息放到一个文件中统一管理。

首先,在Project根目录下创建文件config.gradle,注意,是与Project的buidle.gradle同级的,如下图:

gradle 无法配置java 启动参数 gradle项目配置文件_ci


config,gradle中配置如下内容:

ext {
    cfgs = [
            /* 版本控制 */
            COMPILE_SDK_VERSION         : 27,
            BUILDTOOLS_VERSION          : '28.0.2',
            SUPPORT_LIB_VERSION         : '27.1.1',
            MIN_SDK_VERSION             : 14,
            TARGET_SDK_VERSION          : 27
        
    ]
}

这里对compileSDKVersion、minSDKVersion等的版本进行设置,统一整个项目的版本。

config.gradle的使用
在Project的根build.gradle文件顶部添加如下内容,使用config.gradle

apply from: 'config.gradle'

在module的build.gradle中就可以引用,如下:

gradle 无法配置java 启动参数 gradle项目配置文件_ci_02


配置好之后sync就可以了。

2.dependencies.gradle
我的dependencies.gradle文件中,主要放置的是依赖的框架,如v7包,项目中用到的EventBus注入框架等。

apply plugin: 'com.android.library'
android {
    dataBinding {
        enabled true
    }
    compileSdkVersion cfgs.COMPILE_SDK_VERSION
    buildToolsVersion cfgs.BUILDTOOLS_VERSION

    defaultConfig {
        minSdkVersion cfgs.MIN_SDK_VERSION
        targetSdkVersion cfgs.TARGET_SDK_VERSION

        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }
}

dependencies {
    implementation fileTree(dir: 'libs', include: '*.jar')

    androidTestImplementation('com.android.support.test.espresso:espresso-core:2.2.2', {
        exclude group: 'com.android.support', module: 'support-annotations'
    })
    testImplementation 'junit:junit:4.12'
    //android控件
    implementation "com.android.support:appcompat-v7:${cfgs.SUPPORT_LIB_VERSION}"
    implementation "com.android.support:cardview-v7:${cfgs.SUPPORT_LIB_VERSION}"
    implementation "com.android.support:recyclerview-v7:${cfgs.SUPPORT_LIB_VERSION}"
    implementation "com.android.support:design:${cfgs.SUPPORT_LIB_VERSION}"
    implementation "com.android.support:support-v13:${cfgs.SUPPORT_LIB_VERSION}"
}

这些是我项目中截取的部分配置,可以看到,一些版本号引用的就是config.gradle文件中的内容。
导入使用的时候,如果我们是想在Project的build.gradle中引入,即是所有module都引用,可以在根build.gradle添加:

apply from : 'dependencies.gradle'

如果是在单个module中依赖,则需要在module的buidle.gradle中添加:

apply from: '../dependencies.gradle'

可以看出,只是导入路径不同,…/ 表示定位到根目录,即Project目录下。
3.只使用一个文件
现在,我们抛开上面分开在两个文件中配置的做法,只用一个config.gradle做全局配置。我们在dependencies.gradle中关于依赖的配置,完全可以也放到config.gradle中,只使用一个config.gradle就可以了。使用的时候,如上文cfgs.MIN_SDK_VERSION,改成dependencies .appcompat-v7即可,自定义命名。

ext {
    cfgs = [
             COMPILE_SDK_VERSION         : 27,
            BUILDTOOLS_VERSION          : '28.0.2',
            MIN_SDK_VERSION             : 14,
            TARGET_SDK_VERSION          : 27
  
    ]
    dependencies = [
            "appcompat-v7"     : 'com.android.support:appcompat-v7:27.1.1',
            "support-design"   : 'com.android.support:design:+',
            "junit"            : 'junit:junit:4.12',
            "gson"             : 'com.google.code.gson:gson:2.8.0',
            "rxandroid"        : 'io.reactivex:rxandroid:1.2.1',
            "rxjava"           : 'io.reactivex:rxjava:1.2.3',
            "constraint-layout": 'com.android.support.constraint:constraint-layout:1.0.2',
            "eventbus"         : 'org.greenrobot:eventbus:3.0.0'

    ]
}

内容大致就是这些啦!