Android Gradle统一依赖管理
目的:
避免在依赖包出新版本时,需要对每个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统一依赖管理的更多相关文章
- Gradle之依赖管理
Gradle之依赖管理 泡在网上的日子 / 文 发表于2015-01-29 16:12 第8824次阅读 Gradle,Android Studio 2 编辑推荐:稀土掘金,这是一个针对技术开发者的一 ...
- Gradle笔记——依赖管理基础
1. 什么是依赖管理 依赖管理可以分为两部分:一是依赖,即项目构建或运行时所需要的一些文件:二是发布,即构建完成后上传到某个地方. 1.1 依赖 大部分的项目都需要第三方库类或项目文件,这些文件就是项 ...
- 在Eclipse中使用建立使用Gradle做依赖管理的Spring Boot工程
前述: Gradle存在很长时间了,以前只知道Maven和ivy ,最近才知道有这个存在,因为以后要用这个了; 所以,要先学会怎么用这个工具,就从建立一个简单工程开始! 实际上以前是见过Gradle的 ...
- Gradle Maven 依赖管理
仓库管理简介 本质上说,仓库是一种存放依赖的容器,每一个项目都具备一个或多个仓库. Gradle支持以下仓库格式: Ivy仓库 Maven仓库 Flat directory仓库 我们来看一下,对于每一 ...
- 如何对 Android 库进行依赖管理?
Android 开发人员为项目选择库的时候,考虑的因素不仅仅是功能.可用性.性能.文档丰富度和技术支持情况.他们还关心库的大小,以及要添加的方法数量.因为项目越大,依赖也越多,要把应用的方法数量控制在 ...
- Android Gradle 隐形依赖的奇怪案例
相信 Android 开发者都有在 Android Studio 中升级 compileSdkVersion 的经历,这个时候如果你使用了 support 包,并同时升级,那么可能会出现一个错误提示. ...
- android gradle的全局管理
转自:https://github.com/stormzhang 工程目录下建立baseConfig.gradle文件 内容如下 ext { android = [compileSdkVersion: ...
- gradle入门(1-2)gradle的依赖管理
Gradle支持以下仓库格式: Ivy仓库 Maven仓库 Flat directory仓库 一.添加仓库 1.添加Ivy仓库 1.1.通过URL地址添加一个Ivy仓库 我们可以将以下代码片段加入到b ...
- Gradle 1.12用户指南翻译——第五十章. 依赖管理
本文由CSDN博客貌似掉线翻译,其他章节的翻译请参见:http://blog.csdn.net/column/details/gradle-translation.html翻译项目请关注Github上 ...
随机推荐
- PHP抓取网页内容的几种方法
方法1: 用file_get_contents 以get方式获取内容 <?php $url='http://www.domain.com/?para=123'; $html = file_get ...
- 【BUG】"main" prio=5 tid=1 RUNNABLE
载入超大效果图导致内存不足(GC/ANR) 06-30 11:42:56.624: D/dalvikvm(16264): GC_CONCURRENT freed 1982K, 7% free 4537 ...
- Spring 配置文件头部xmls解析
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...
- POJ 1742 Coins 优化后的多重背包
Coins Time Limit: 3000MS Memory Limit: 30000K Total Submissions: 37853 Accepted: 12849 Descripti ...
- AIX 适配器
1. 查看所有适配卡 lsdev -CHc adapter 2. 物理网卡适配卡 查看到物理网卡的个数与类型 lsdev -Cc adapter|grep ent 查看物理网卡具体插槽位( ...
- 使用PHP中的curl发送请求
使用CURL发送请求的基本流程 使用CURL的PHP扩展完成一个HTTP请求的发送一般有以下几个步骤: 初始化连接句柄: 设置CURL选项: 执行并获取结果: 释放VURL连接句柄. 下面的程序片段是 ...
- 【Django】信号调度
Django中提供了"信号调度",用于在框架执行操作时解耦. 通俗来讲,就是在某些动作发生时,信号允许特定的发送者去提醒一些接受者. * Django内置信号:** Model s ...
- VMware Vsphere 6.0安装部署 Vsphere ESXi安装
Vsphere ESXi安装 ESXi作为虚拟化环境的Hypervisor层,负责将服务器虚拟成资源池,提供接口供管理组件调用,将下面的iso刻录成光盘或可启动U盘,安装在服务器裸机上: 下载地址请见 ...
- VMware Vsphere 6.0安装部署 总体部署架构
(一)总体部署架构 本教程用于学习目的,力求详尽的介绍安装部署过程和各组件之间的关系,部署过程从最简单的模型开始,系列文章按时间顺序依次展开,每篇介绍一个组件. 开始阶段,按照一台物理服务器,部署所有 ...
- newgrp---将当前登录用户临时加入到已有的组中
Linux中的newgrp命令主要是将当前登录用户临时加入到已有的组中,用法如下: [linuxidc@localhost etc]$ newgrp grptest 上面命令的含义是将用户linuxi ...