Android开发:《Gradle Recipes for Android》阅读笔记(翻译)2.4——更新新版本的Gradle
问题:
你需要更新应用的Gradle版本。
解决方案:
生成一个新的wrapper,或者直接修改属性文件(.properties)。
讨论:
Android Studio包含了一个Gradle的分发。当你创建一个新的android应用的时候,IDE自动为Unix和windows生成gradlew和gradlew.bat脚本。这些“wrapper”脚本允许你再没有安装gradle之前使用它。替代的,wrapper脚本自动下载并安装指定版本的gradle。
软件工程持续了很长时间,gradle定期发布新版本。你也许会想要更新到新的版本,因为有更好的性能,或者因为一些新的特性。为了实现这些,你有两个选项:
1、在build.gradle文件中增加一个wrapper任务,并且生成新的wrapper脚本
2、直接编辑gradle-wrapper.properties文件中distributionUrl的值
如果你的项目已经加载了新版本的gradle,第一种方法是最好的选项。默认的gradle 配置已经包含了一个叫wrapper的任务(可以使用tasks指令查看,'./gradlew tasks')。
gradle wrapper命令行提供了一个 --gradle-version的参数。可以通过这种方式指定一个版本来重新生成wrapper。如:

另一种选择是明确的在顶级的build文件中增加wrapper任务,并且指定gradleVersion值,如下:

在这些变更之后,运行./gradlew任务将会生成一个新的wrapper文件。
偶尔存在的wrapper实在太老了,以至于android studio拒绝同步已有的build文件,使得无法运行任何任务。在这种情况下,你可以直接找到控制wrapper的文件。
除了gradlew和gradlew.bat脚本外,wrapper还依赖于gradle/wrapper文件夹下的两个文件,gradle-wrapper.jar和gradle-wrapper.properties,如下图:

gradle-wrapper.properties文件包含了distributionUrl属性,用来标示从哪里下载需要的版本的gradle,如下:
#Fri Feb 03 14:50:11 CST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-2.14-bin.zip
可以直接编辑文件,改变为想要的版本号。这可以运行你执行已有的wrapper脚本。
你可以通过命令行标志,或者使用wrapper脚本增加二进制分发(注意url结尾的bin)的方式更新gradle。Android Studio会有一个下载完整的包含源码的分发的提示,如下:

当你点击链接的时候,gradle-wrapper.properties文件中的distributionUrl值就会变成"all"版本。

如果你没有及时点击更新按钮,你也可以直接修改文件,将URL中的bin替换成all。
Android开发:《Gradle Recipes for Android》阅读笔记(翻译)2.4——更新新版本的Gradle的更多相关文章
- Android开发工具全面转向Android Studio(3)——AS project/module的目录结构(与Eclipse对比)
如果AS完全还没摸懂的,建议先看下Android开发工具全面转向Android Studio(2)——AS project/module的CRUD. 注:以下以Windows平台为标准,AS以目前最新 ...
- Android开发工具全面转向Android Studio(2)——AS project/module的CRUD
本文有些地方可能需要衔接Android开发工具全面转向Android Studio(1)——准备开发环境,读起来效果会更好. 这个世界很奇妙,所有的东西离不开CRUD,即增删改查.即使人本身也遵循这个 ...
- 配置cordova的android开发环境(无android studio)
原文:配置cordova的android开发环境(无android studio) 趁元旦放假想试一下cordova,不想安装庞大的android studio,所以想最小化安装,居然花了一整天的时间 ...
- 收集整理Android开发所需的Android SDK、开发中用到的工具、Android开发教程、Android设计规范,免费的设计素材等。
AndroidDevTools Android Dev Tools官网地址:www.androiddevtools.cn 收集整理Android开发所需的Android SDK.开发中用到的工具.An ...
- Eclipse搭建Android开发环境并运行Android项目
Eclipse搭建Android开发环境并运行Android项目 (详细) 安装环境: window 10 64位 安装工具: JDK.Eclipse.SDK.ADT 安装步骤: 1.JAVA JDK ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)6.2——DSL文档
问题: 你需要查找Android Gradle DSL的完整文档. 解决方案: 访问Gradle Tools网站,从Android开发网站下载ZIP文件. 讨论:Android开发网站首页有完整的AP ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)6.1——推荐配置
问题: 你想要提高Gradle的构建效率. 解决方案: 使用下面推荐的技术组合. 讨论: 首先,这里没有可以影响app表现的建议.有很多你可以做的事来提高app,很多都和Android的混淆工具有关. ...
- Android开发:《Gradle Recipes for Android》阅读笔记(翻译)2.3——用Eclipse ADT导出App
问题: 想在一个已经存在的Eclipse ADT的项目中使用Gradle 解决方案: Eclipse ADT插件可以帮助生成Gradle文件 讨论: Eclipse的ADT插件是在2013年推出Gra ...
- Android开发:《Gradle Recipes for Android》阅读笔记1.2
在android开发中会需要配置使用app的android SDK的最低版本和目标版本,这个是bulidl.gradle的android模块设置.默认有以下几个设置: applicationId,这个 ...
随机推荐
- HDU2491 Priest John's Busiest Day
题目链接 题意: 有n个人要进行乒乓球比赛,每一个人都一个能力值.每一个人出现的次序就是他们住的位置 如今要求进行一场比赛,三个人,裁判的能力值在两个选手之间,住的位置也在两个人的之间 问这样的比赛一 ...
- 使用IntelliJ IDEA创建Maven多模块项目
转载:http://blog.csdn.net/xyw591238/article/details/52794788 使用Maven管理项目时,往往需要创建多个模块,模块之间存在相互引用的关系.对于M ...
- window onload 与 img onload事件
window onload 与 img onload事件 通常,window.onload就是载入完dom之后运行的. 而img就是载入完图片完运行它的onload事件.依据img的src是否载入完毕 ...
- MATLAB 的数据类型
在MATLAB中有15种基本的数据类型: 8种整型数据类型.单精度浮点型(float).双精度浮点型(double).逻辑型(logical).字符串型(char).单元数组型(cell).结构体类型 ...
- Cron表达式中特殊字符解释
http://www.cnblogs.com/opaljc/archive/2012/05/24/2516392.htmlCron表达式的时间字段除允许设置数值外,还可使用一些特殊的字符,提供列表.范 ...
- 使用NPOI读取Excel出错
使用NPOI读取Excel出错,错误信息:java.io.IOException: Invalid header signature; read 4503608217567241, expected ...
- rac_安装软件时报版本号过高问题
原创作品,出自 "深蓝的blog" 博客.欢迎转载,转载时请务必注明下面出处,否则追究版权法律责任. 深蓝的blog:http://blog.csdn.net/huangyanlo ...
- 当你输入一个网址/点击一个链接,发生了什么?(以www.baidu.com为例)
>>>点击网址后,应用层的DNS协议会将网址解析为IP地址: DNS查找过程: 浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就将结束. 如果用户 ...
- JQuery实现ajax跨域
AJAX 的出现使得网页可以通过在后台与服务器进行少量数据交换,实现网页的局部刷新.但是出于安全的考虑,ajax不允许跨域通信.如果尝试从不同的域请求数据,就会出现错误.如果能控制数据驻留的远程服务器 ...
- 10710 - Chinese Shuffle(数论+完美洗牌)
UVA 10710 - Chinese Shuffle 题目链接 题意:给定n张牌,完美洗牌n - 1次,问是否会变回原来的序列 思路:完美洗牌: 如果有a1a2a3...anb1b2b3...bn的 ...