当前位置:   article > 正文

Android config.gradle配置详解

android config.gradle

 我们创建的项目通常有多个模块(moudle),每个模块的build.gradle配置类似,为了统一管理引入第三方库版本等内容,引入config.gradle文件。随着APP项目的模块化开发、组件化开发以及插件化开发等模式的出现,为了能方便在不同的module中进行统一管理公共配置信息,全局的gradle配置文件显得有必要,其中下列方式只是其中的一种配置方式,在项目的根目录下创建config.gradle文件,用来统一定义并管理公共配置信息部分。

1、新建config.gradle

在项目根目录下创建一个config.gradle文件名的文件(和settings.gradble同目录)。

 2、统一定义并管理config.gradle文件内容

  1. /**
  2. * ext:扩展内容,固定格式(即只能用ext{}),并且是一个闭包的内容
  3. */
  4. ext {
  5. //appcompatV7Version:自定义的属性,下同
  6. appcompatV7Version = "26.+"
  7. junitVersion = "4.12"
  8. //appId:自定义的一个map映射集合,key-value
  9. appId = [
  10. "app": "app的包名"
  11. ]
  12. android = [
  13. compileSdkVersion: 26,
  14. buildToolsVersion: "26.0.2",
  15. minSdkVersion : 19,
  16. targetSdkVersion : 26,
  17. versionCode : 1,
  18. versionName : "1.0"
  19. ]
  20. dependencies = [
  21. //shell语言语法:${变量名}
  22. "appcompat-v7": "com.android.support:appcompat-v7:${appcompatV7Version}",
  23. "junit" : "junit:junit:${junitVersion}"
  24. ]
  25. }

3、根目录build.gradle顶部增加 apply from: 'config.gradle' 

4、全局配置的使用 

  1. apply plugin: 'com.android.application'
  2. //赋值与引用,def 类型 相当于java中的Object类型,如config是一个map集合对象
  3. def config = rootProject.ext.android
  4. def appId = rootProject.ext.appId
  5. println("config内容:${config}")//输出内容-》config内容:[compileSdkVersion:26, buildToolsVersion:26.0.2, minSdkVersion:19, targetSdkVersion:26]
  6. println("appId内容:${appId}")//输出内容-》appId内容:[app:com.itsdf07.appnotes]
  7. android {
  8. compileSdkVersion config.compileSdkVersion //map集合取值方式一
  9. buildToolsVersion config.buildToolsVersion
  10. defaultConfig {
  11. applicationId appId["app"]//map集合取值方式二
  12. minSdkVersion config.minSdkVersion
  13. targetSdkVersion config.targetSdkVersion
  14. versionCode config.versionCode
  15. versionName config.versionName
  16. testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
  17. }
  18. buildTypes {
  19. release {
  20. minifyEnabled false
  21. proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  22. }
  23. }
  24. }
  25. dependencies {
  26. compile fileTree(dir: 'libs', include: ['*.jar'])
  27. androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', {
  28. exclude group: 'com.android.support', module: 'support-annotations'
  29. })
  30. compile 'com.android.support:appcompat-v7:26.+'
  31. compile 'com.android.support.constraint:constraint-layout:1.0.2'
  32. testCompile 'junit:junit:4.12'
  33. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/weixin_40725706/article/detail/269924
推荐阅读
相关标签
  

闽ICP备14008679号