目的:

避免在依赖包出新版本时,需要对每个module中的build.gradle文件都进行修改(如appcompat-v7包),使用这种方式即只需一次修改。

方法一

在项目的根目录创建一个gradle配置文件config.gradle,格式如下(内容根据需要进行修改):
项目中所有的依赖只要在这个文件中统一做一次修改即可。

其次在根目录的build.gradle文件中添加内容(apply from:”config.gradle”),如图:

加上这一行代码,意思就是所有的module都可以从这个(config.gradle)配置文件里读取内容

在app(module)目录下的build.gradle文件中使用如下:

android {
compileSdkVersion rootProject .ext.android.compileSdkVersion
buildToolsVersion rootProject .ext.android.buildToolsVersion
defaultConfig {
applicationId rootProject .ext.android.applicationId
minSdkVersion rootProject .ext.android.minSdkVersion
targetSdkVersion rootProject .ext.android.targetSdkVersion
versionCode rootProject .ext.android.versionCode
versionName rootProject .ext.android.versionName
}
...
}
dependencies {
...
compile rootProject .ext.dependencies[ "design"]
compile rootProject .ext.dependencies[ "appcompat-v7"]
compile rootProject .ext.dependencies[ "recyclerview-v7"]
...
}

方法二:

config.gradle 文件如下

ext {
// Version of compile sdk
COMPILE_SDK_VERSION =
// Version of Android build tool
BUILD_TOOLS_VERSION = "23.0.3"
// Min version of Android sdk
MIN_SDK_VERSION =
// Version of target Android sdk
TARGET_SDK_VERSION =
// Use progurad or not
MINIFY_ENABLED = true
MINIFY_DISABLED = false
// Version of "com.android.support:appcompat-v7", refer it as folow:
// compile "com.android.support:appcompat-v7:${APPCOMPAT_VERSION}"
APPCOMPAT_VERSION = '23.2.0'
// Version of "junit", refer it as folow:
// compile "junit:junit:${JUNIT_VERSION}"
JUNIT_VERSION= '4.12'
}
ext {
// Version of compile sdk
COMPILE_SDK_VERSION =
// Version of Android build tool
BUILD_TOOLS_VERSION = "23.0.3"
// Min version of Android sdk
MIN_SDK_VERSION =
// Version of target Android sdk
TARGET_SDK_VERSION =
// Use progurad or not
MINIFY_ENABLED = true
MINIFY_DISABLED = false
// Version of "com.android.support:appcompat-v7", refer it as folow:
// compile "com.android.support:appcompat-v7:${APPCOMPAT_VERSION}"
APPCOMPAT_VERSION = '23.2.0'
// Version of "junit", refer it as folow:
// compile "junit:junit:${JUNIT_VERSION}"
JUNIT_VERSION= '4.12'
}

其次在根目录的build.gradle文件中添加内容(apply from:”config.gradle”),如图:
config.gradle 文件如下

在app(module)目录下的build.gradle文件中使用如下:

apply plugin : 'com.android.library'
android {
compileSdkVersion COMPILE_SDK_VERSION
buildToolsVersion BUILD_TOOLS_VERSION
defaultConfig {
minSdkVersion MIN_SDK_VERSION
targetSdkVersion TARGET_SDK_VERSION
versionCode
versionName "1.0.0"
}
buildTypes {
release {
minifyEnabled MINIFY_DISABLED
proguardFiles getDefaultProguardFile('proguard-android.txt' ), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir : 'libs', include: ['*.jar' ])
testCompile "junit:junit: ${JUNIT_VERSION} "
compile "com.android.support:appcompat-v7: ${APPCOMPAT_VERSION} "
}

方法三

在属性文件(gradle.properties)中配置(google i/o 2015用的是这种方式):

如:在gradle.properties中配置相应的版本号(可以理解为定义一个常量参数) 

在app/build.gradle中使用如:

Android Gradle统一依赖管理的更多相关文章

  1. Gradle之依赖管理

    Gradle之依赖管理 泡在网上的日子 / 文 发表于2015-01-29 16:12 第8824次阅读 Gradle,Android Studio 2 编辑推荐:稀土掘金,这是一个针对技术开发者的一 ...

  2. Gradle笔记——依赖管理基础

    1. 什么是依赖管理 依赖管理可以分为两部分:一是依赖,即项目构建或运行时所需要的一些文件:二是发布,即构建完成后上传到某个地方. 1.1 依赖 大部分的项目都需要第三方库类或项目文件,这些文件就是项 ...

  3. 在Eclipse中使用建立使用Gradle做依赖管理的Spring Boot工程

    前述: Gradle存在很长时间了,以前只知道Maven和ivy ,最近才知道有这个存在,因为以后要用这个了; 所以,要先学会怎么用这个工具,就从建立一个简单工程开始! 实际上以前是见过Gradle的 ...

  4. Gradle Maven 依赖管理

    仓库管理简介 本质上说,仓库是一种存放依赖的容器,每一个项目都具备一个或多个仓库. Gradle支持以下仓库格式: Ivy仓库 Maven仓库 Flat directory仓库 我们来看一下,对于每一 ...

  5. 如何对 Android 库进行依赖管理?

    Android 开发人员为项目选择库的时候,考虑的因素不仅仅是功能.可用性.性能.文档丰富度和技术支持情况.他们还关心库的大小,以及要添加的方法数量.因为项目越大,依赖也越多,要把应用的方法数量控制在 ...

  6. Android Gradle 隐形依赖的奇怪案例

    相信 Android 开发者都有在 Android Studio 中升级 compileSdkVersion 的经历,这个时候如果你使用了 support 包,并同时升级,那么可能会出现一个错误提示. ...

  7. android gradle的全局管理

    转自:https://github.com/stormzhang 工程目录下建立baseConfig.gradle文件 内容如下 ext { android = [compileSdkVersion: ...

  8. gradle入门(1-2)gradle的依赖管理

    Gradle支持以下仓库格式: Ivy仓库 Maven仓库 Flat directory仓库 一.添加仓库 1.添加Ivy仓库 1.1.通过URL地址添加一个Ivy仓库 我们可以将以下代码片段加入到b ...

  9. Gradle 1.12用户指南翻译——第五十章. 依赖管理

    本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上 ...

随机推荐

  1. PHP抓取网页内容的几种方法

    方法1: 用file_get_contents 以get方式获取内容 <?php $url='http://www.domain.com/?para=123'; $html = file_get ...

  2. 【BUG】&quot;main&quot; prio=5 tid=1 RUNNABLE

    载入超大效果图导致内存不足(GC/ANR) 06-30 11:42:56.624: D/dalvikvm(16264): GC_CONCURRENT freed 1982K, 7% free 4537 ...

  3. Spring 配置文件头部xmls解析

    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...

  4. POJ 1742 Coins 优化后的多重背包

    Coins Time Limit: 3000MS   Memory Limit: 30000K Total Submissions: 37853   Accepted: 12849 Descripti ...

  5. AIX 适配器

    1. 查看所有适配卡 lsdev -CHc adapter     2. 物理网卡适配卡 查看到物理网卡的个数与类型 lsdev -Cc adapter|grep ent   查看物理网卡具体插槽位( ...

  6. 使用PHP中的curl发送请求

    使用CURL发送请求的基本流程 使用CURL的PHP扩展完成一个HTTP请求的发送一般有以下几个步骤: 初始化连接句柄: 设置CURL选项: 执行并获取结果: 释放VURL连接句柄. 下面的程序片段是 ...

  7. 【Django】信号调度

    Django中提供了"信号调度",用于在框架执行操作时解耦. 通俗来讲,就是在某些动作发生时,信号允许特定的发送者去提醒一些接受者. * Django内置信号:** Model s ...

  8. VMware Vsphere 6.0安装部署 Vsphere ESXi安装

    Vsphere ESXi安装 ESXi作为虚拟化环境的Hypervisor层,负责将服务器虚拟成资源池,提供接口供管理组件调用,将下面的iso刻录成光盘或可启动U盘,安装在服务器裸机上: 下载地址请见 ...

  9. VMware Vsphere 6.0安装部署 总体部署架构

    (一)总体部署架构 本教程用于学习目的,力求详尽的介绍安装部署过程和各组件之间的关系,部署过程从最简单的模型开始,系列文章按时间顺序依次展开,每篇介绍一个组件. 开始阶段,按照一台物理服务器,部署所有 ...

  10. newgrp---将当前登录用户临时加入到已有的组中

    Linux中的newgrp命令主要是将当前登录用户临时加入到已有的组中,用法如下: [linuxidc@localhost etc]$ newgrp grptest 上面命令的含义是将用户linuxi ...