android多Modle统一配置Gradle
android多Modle统一配置Gradle
目前as使用gradle来配置项目工程,一般的项目为了模块化或者结构的清晰。
都会或多或少的使用多library(model)的方式。
so,问题来了。。。
我想升级下项目的支持的最小版本,编译版本等(下面的代码),要改很多处,怎么办呢?
compileSdkVersion 23buildToolsVersion "23.0.2"defaultConfig {minSdkVersion 15targetSdkVersion 23versionCode 1versionName "1.0"}
解决问题之前我们先说一下Gradle工作流程
- 首先是初始化阶段。对multi-project build而言,就是执行settings.gradle文件
- 配置阶段,在这个阶段就是解析每个model中的build.gradle文件
- 在这里我叫它配置依赖关系阶段,在这里会更具项目的依赖关系,建立一定的顺序。
- 执行任务阶段(即各种task)你也可以自己写task
其实在各个阶段我们都可以添加一些我们需要的东东。
这既是关键了,嘻嘻…
下面是解决方法:
1.修改local.properties文件
这个文件是properties文件,就是配置一下信息。
这样的话,等下次再修改的时候就只修改改文件就行了。
这里我简单的写一下,可以根据你的项目来添加或者删除。
ndk.dir=/Users/guxiuzhong/Library/Android/sdk/ndk-bundle
sdk.dir=/Users/guxiuzhong/Library/Android/sdk
minSdkVersion=15
targetSdkVersion=23
compileSdkVersion=23
buildToolsVersion=23.0.2
versionName=1.0
versionCode=1
其实就是把原来gradle中版本等抽取出来,形成键值对。
2.读取local.properties文件
我们新建一个目录叫selfgradle
如下图(注意结构)
然后新建一个init.gradle 文件,
//定义一个方法
def initProjectEnvironment() {//打印println "initialize Gradle Environment ....."Properties properties = new Properties()File propertyFile = new File(rootDir.getAbsolutePath() + "/local.properties")properties.load(propertyFile.newDataInputStream())//configgradle.ext.minSdkVersion = properties.getProperty('minSdkVersion').toInteger().intValue()gradle.ext.targetSdkVersion = properties.getProperty('targetSdkVersion').toInteger().intValue()gradle.ext.compileSdkVersion = properties.getProperty('compileSdkVersion').toInteger().intValue()gradle.ext.buildToolsVersion = properties.getProperty('buildToolsVersion')gradle.ext.versionName = properties.getProperty('versionName')gradle.ext.versionCode = properties.getProperty('versionCode').toInteger().intValue()println "initialize Gradle Environment completes..."
}//调用
initProjectEnvironment()
3.调用该文件
在哪里调用呢?
肯定是在构建项目的 初始化阶段也就是gradle的初始化阶段。
也就是settings.gradle文件
修改如下:
//和你的selfgradle文件结构放在哪里有关
apply from: './selfgradle/init.gradle'include ':app', ':librarya'
4.使用配置的信息
在你的主工程或者各个Modle下使用即可。
compileSdkVersion gradle.ext.compileSdkVersionbuildToolsVersion gradle.ext.buildToolsVersiondefaultConfig {applicationId "com.gxz.gradledemo2"minSdkVersion gradle.ext.minSdkVersiontargetSdkVersion gradle.ext.targetSdkVersionversionCode gradle.ext.versionCodeversionName gradle.ext.versionName}
最后我们再次编译:
我们看到首先输出了我们打印的log,哈哈,是不是呢,妈妈再也不用担心我了…
。。。
android多Modle统一配置Gradle相关推荐
- android多渠道打包签名配置,Gradle For Android(二) 多渠道打包与签名配置
<Gradle For Android(二) 多渠道打包与签名配置> 转载请注明来自 傻小孩b(gold.xitu.io/user/57e089-喜欢的能够关注我,不按期总结文章!您的支持 ...
- 【AOP 面向切面编程】Android Studio 中配置 AspectJ ( 下载并配置AS中 jar 包 | 配置 Gradle 和 Gradle 插件版本 | 配置 Gradle 构建脚本 )
文章目录 一.AspectJ 下载 二.拷贝 aspectjrt.jar 到 Android Studio 三.配置 Gradle 和 Gradle 插件版本 四.配置 Gradle 构建脚本 一.A ...
- android studio cradle 本地配置
刚刚从eclipse转androd studio遇到了很多坑,今天就帮大家来填填坑 自2013年5月16日,在I/O大会上,谷歌推出新的Android开发环境--Android Studio,并对开发 ...
- mac下Android studio配置gradle的路径
2019独角兽企业重金招聘Python工程师标准>>> 最详细的mac下Android studio配置gradle的路径 转载于:https://my.oschina.net/sh ...
- android Q gradle配置,【Android】Android Studio启动配置gradle
环境:debian 第一次创建Android工程的时候,现配置gradle,但是一般会卡在 Download Gradle directly from http://services.gradle.o ...
- Android开发之深入理解Android Studio构建文件build.gradle配置
通过这篇文章的学习,你会对build.gradle文件有一个全新的认识,可以将TeachCourse文章提到的相关说明作为文档参考,方便在另一个module中引入,代码如下: apply plugin ...
- 怎么配置android远程服务器地址,在 Android studio 中 配置Gradle 进行 “动态编译期间,指定 远程服务器地址 ,生成多个安装包”...
需求: 在产品开发中,经常需要发布各个版本,每个版本的服务器地址有不同的服务器地址.比如 开发服务器使用 192.168.1.232服务器, 测试服务器使用 192.168.1.245服务器, 正式上 ...
- Android Studio配置gradle时或导入别人项目时提示Could not find com.android.tools.build:gradle
Android Studio配置gradle时或导入别人项目时提示Could not find com.android.tools.build:gradle 配置完环境变量后,cmd运行 gradle ...
- android studio gradle官网下载地址,Android Studio离线配置gradle(附gradle下载地址)
导入新的android studio工程后经常由于多种缘由没法联网进行gradle下载,只能寻找离线手动配置gradle的方法,踩过很多坑后,最终经过如下几步android 解决:web 1. 下载与 ...
最新文章
- 青年生命科学论坛报告:扩增子和宏基因组数据分析与可视化流程—刘永鑫(北京210606)...
- 超越“机器人三定律” 人工智能期待新伦理
- 1821: 入学考试(1261采药)01背包
- 操作系统修炼秘籍(1):秘籍简介
- 2.x最终照着教程,成功使用OpenGL ES 绘制纹理贴图,添加了灰度图
- 漂亮的个人团队介绍网页模板
- 1· linux命令:查看依赖的共享库 - ldd命令
- shell中四大循环介绍及使用
- Container ViewController自定义转场控制器。
- vue:webpack + vue-cil 中 proxyTable 处理跨域
- SAP License:SaaS的生门到底在哪里?
- 键入强力推进并解决强转
- 远程会诊系统加持,长三角(上海)智慧互联网医院有多智慧?
- 京东价格监控软件开发技术探讨十五:通过酷Q和ZeroMQ实现推送变价变库消息到QQ群
- STM32系列(HAL库)——F103C8T6点亮1.44寸TFT-LCD彩屏
- 小程序源码:登录接口已修复梦想贩卖机V2 2.0.4 修复版
- 天津2019全国计算机二级,2019年上半年全国计算机等级考试报名啦
- 百度二年级手工机器人_小学二年级手工科技制作方案
- 谷歌提出MaskGIT:掩码生成图像Transformer
- RHCSA 2022/10/14