AndroidStudio本地化配置gradle的buildToolsVersion和gradleBuildTools
来源:互联网 发布:淘宝烟丝 编辑:程序博客网 时间:2024/06/05 03:43
版权声明:本文为博主原创文章,未经我的允许不得转载!
转载请标明出处: http://blog.csdn.net/guiying712/article/details/72629948 ,本文出自:【张华洋的博客】
1、Android工程中的gradle.properties
gradle.properties 有两个非常有用的属性:
在Android项目中的任何一个 build.gradle 文件中都可以把 gradle.properties 中的常量读取出来,不管这个 build.gradle 是组件的还是整个项目工程的 build.gradle;
gradle.properties 中的数据类型都是 String 类型,使用其他数据类型需要自行转换;
2、gradle.properties能够解决的问题
利用 gradle.properties 的属性可以解决在多人协同开发Android项目的时候,因为开发团队成员的Android开发环境(开发环境指 Android SDK 和 AndroidStudio)不一致而导致频繁改变线上项目的 build.gradle 配置。
在每个Android组件的 build.gradle 中有一个属性:buildToolsVersion,表示构建工具的版本号,这个属性值对应 AndroidSDK 中的 Android SDK Build-tools,正常情况下 build.gradle 中的 buildToolsVersion 跟你电脑中 Android SDK Build-tools 的最新版本是一致的,比如现在 Android SDK Build-tools 的最新的版本是:25.0.3,那么我的Android项目中 build.gradle 中的 buildToolsVersion 版本号也是 25.0.3,但是一旦一个Android项目是由好几个人同时开发,总会出现每个人的开发环境 Android SDK Build-tools 是都是不一样的,并不是所有人都会经常升级更新 Android SDK,而且代码是保存到线上环境的(例如使用 SVN/Git 等工具),某个开发人员提交代码后线上Android项目中 build.gradle 中的 buildToolsVersion 也会被不断地改变。
另外一个原因是因为Android工程的根目录下的 build.gradle 声明了 Android Gradle 构建工具,而这个工具也是有版本号的,而且 Gradle Build Tools 的版本号跟 AndroidStudio 版本号一致的,但是有些开发人员基本很久都不会升级自己的 AndroidStudio 版本,导致团队中每个开发人员的 Gradle Build Tools 的版本号也不一致。
如果每次同步代码后这两个工具的版本号被改变了,开发人员可以自己手动改回来,并且不要把改动工具版本号的代码提交到线上环境,这样还可以勉强继续开发;但是很多公司都会使用持续集成工具(例如Jenkins)用于持续的软件版本发布,而Android出包是需要 Android SDK Build-tools 和 Gradle Build Tools 配合的,一旦提交到线上的版本跟持续集成工具所依赖的Android环境构建工具版本号不一致就会导致Android打包失败。
为了解决上面问题就必须将Android项目中 build.gradle 中的 buildToolsVersion 和 GradleBuildTools 版本号从线上代码隔离出来,保证线上代码的 buildToolsVersion 和 Gradle Build Tools 版本号不会被人为改变。
3、配置策略
1、首先在Android工程的 gradle.properties 中分别定义两个常量:localBuildToolsVersion 和 localGradlePluginVersion,分别表示 buildToolsVersion 和 Gradle Build Tools 的版本号:
# 为自动化出包配置(因为每个开发的电脑坏境不一致)localBuildToolsVersion=25.0.3# 这个值一般跟你的AndroidStudio版本号一致localGradlePluginVersion=2.3.2
2、然后在Android工程的 build.gradle 中引用 localGradlePluginVersion:
dependencies { //classpath "com.android.tools.build:gradle:$localGradlePluginVersion" //$localGradlePluginVersion是gradle.properties中的数据 classpath "com.android.tools.build:gradle:$localGradlePluginVersion" }
3、在组件的build.gradle中引用 localBuildToolsVersion:
android { compileSdkVersion rootProject.ext.compileSdkVersion //localBuildToolsVersion是gradle.properties中的数据 buildToolsVersion localBuildToolsVersion defaultConfig { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode rootProject.ext.versionCode versionName rootProject.ext.versionName }}
4、最后是最重要的一步,一定要将 gradle.properties 从版本控制工具(Git、SVN)中给忽略掉,千万不要把这个文件提交到代码仓库;然后把配置好的 gradle.properties 给每个开发人员发一份,供他们本地使用,至于 gradle.properties 中的版本号随便他们改好了,反正又不会传到代码仓库。
为了能够更直观的理解这篇文章,请查看:Android组件化项目AndroidModulePattern
- AndroidStudio本地化配置gradle的buildToolsVersion和gradleBuildTools
- AndroidStudio中gradle,buildToolsVersion,complieSdkVersion的关系
- AndroidStudio、gradle、buildToolsVersion关系
- AndroidStudio、gradle、buildToolsVersion关系
- AndroidStudio、gradle、buildToolsVersion关系
- 关于AndroidStudio 配置gradle和gradle插件的问题
- Androidstudio中gradle配置和使用
- Androidstudio中gradle配置和使用
- 关于AndroidStudio gradle的配置出错问题
- 【AndroidStudio】手动配置gradle的方法
- Androidstudio配置本地Gradle
- AndroidStudio NDK Gradle配置
- AndroidStudio gradle配置
- AndroidStudio配置gradle
- AndroidStudio gradle配置
- AndroidStudio gradle配置
- Androidstudio配置本地Gradle
- AndroidStudio gradle配置
- 浅谈社交网络中垃圾用户检测
- Buy One Get One Free
- 【JavaScript】基础整理—正则表达式
- 每天一个 Linux 命令(32):gzip命令
- 数组排序sort()
- AndroidStudio本地化配置gradle的buildToolsVersion和gradleBuildTools
- 轮播图--文字上下方向自动滑动
- 第4章C/C++语言基础 4.3~4.6
- swift3 保存json到桌面,从沙盒中读取json
- 4836: [Lydsy2017年4月月赛]二元运算
- 离散题目8
- Spring的自动装配
- Java多线程之内存可见性
- 10、Linux根文件系统的制作