Android Gradle和Gradle插件区别

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

一、引言

1、什么是Gradle?什么是Gradle插件?

build.gradle中依赖的classpath 'com.android.tools.build:gradle:2.1.2'和gradle-wrapper.properties中的distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip有什么区别?

Android studio 更新后,Gradle和Gradle插件间版本该如何对应?

你是不是也有这样的困惑?读完本文后,或许对你有点点帮助.

2、名词解释:

Gradle插件:该名称的英文是:Android Plugin for Gradle

二、Gradle和Gradle插件区别

我们知道Android的构建系统使用Gradle来构建应用.Gradle是一种构建工具,它使用一种基于Groovy的特定领域语言来申明项目设置.

上面是Android developer上对Gradle的解释.听起来有些拗口.我们可以这么理解:

软件开发过程不仅仅是编写代码,还涉及到对项目的管理,比如:添加项目的依赖,打包,签名,发布等一系列操作,如果你每天都在做这些操作,那有没有想过这些操作可以像代码一样被描述出来,供我们复用以及自动运行.

没错,这就是Gradle替我们做的事!Gradle通过编写一个名为build.gradle的脚本文件对项目进行设置,再根据这个脚本对项目进行构建.

那么,如何来提供这个Gradle构建环境呢?这就需要通过安装Gradle插件来使系统能支持运行Gradle.安装Android Studio后就已经帮我安装了Gradle插件.但Gradle插件是独立于Android Studio运行的,所以它的更新也是与Android Studio分开的.

三、更新Gradle插件

当更新了Android Studio,你可能会收到提示要求更新Gradle插件到最新版本.你可以选择接受更新,也可以基于你的项目编译要求来手动指定版本.

指定Gradle插件版本有两种方式:

  • 在Android Studio中选择File > Project Structure > Project菜单;
  • 在顶层build.gradle中修改配置.

下面的例子在build.gradle中设置Gradle版本为2.2.0

151752_B0Mw_1032182.png

注意:不应该动态指定版本号,如"com.android.tools.build:gradle:2.+".这样做可能会导致意外的版本更新,并且会给解决版本差异带来困难.

如果指定的版本没有下载下来,那么项目在下次构建的时候Gradle会再去下载.或者你也可以点击Tools > Android > Sync Project with Gradle Files去下载.

四、更新Gradle

当更新了Android Studio,系统会提示要求更新Gradle到最新版本.同更新Gradle插件一样,你可以选择接受更新,也可以基于你的项目编译要求来手动指定版本.

更新Gradle也有两种方式:

  • 通过选择File > Project Structure > Project来指定Gradle版本
  • gradle/wrapper/gradle-wrapper.properties文件中编辑Gradle引用地址

gradle/wrapper/gradle-wrapper.properties文件中编辑Gradle引用地址如下:

151736_MhxP_1032182.png

五、Gradle与Gradle插件版本匹配

因为Gradle仍在发展,在不断更新,自然Gradle插件也需要不断更新版本才能提供对新版本Gradle的支持,那么它们之间的版本是如何对应的呢?

下图展示了Gradle插件与Gradle版本间更新的对应关系.顺便说一下,最好让你的Gradle和Gradle插件都更新到最新.

 

Plugin versionRequired Gradle version
1.0.0 - 1.1.32.2.1 - 2.3
1.2.0 - 1.3.12.2.1 - 2.9
1.5.02.2.1 - 2.13
2.0.0 - 2.1.22.10 - 2.13
2.1.3+2.14.1+

六、总结

gradle-wrapper.properties中配置的是的Gradle的版本.

build.gradle中的依赖指定的是Gradle插件的版本.

转载于:https://my.oschina.net/ocean870227/blog/1554517

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/454753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

装机之MBR和GPT

MBR分区 MBR的意思是“主引导记录”,是IBM公司早年间提出的。它是存在于磁盘驱动器开始部分的一个特殊的启动扇区。这个扇区包含了已安装的操作系统系统信息,并用一小段代码来启动系统。如果你安装了Windows,其启动信息就放在这一段代码中—…

Linux 文件打乱顺序

cat in.txt | awk BEGIN{srand()}{print rand()"\t"$0} | sort -k1,1 -n | cut -f2- > out.txt sort -R in.txt > out.txt 后者要计算每行的hash,再排序,在文件内容比较多的情况下前者要比后者快得多 参考文献: http://blog.…

php 计算 目录大小,php计算整个目录大小的方法

本文实例讲述了php计算整个目录大小的方法。分享给大家供大家参考。具体实现方法如下:/*** Calculate the full size of a directory** author Jonas John* version 0.2* link http://www.jonasjohn.de/snippets/php/dir-size.htm* param string $DirectoryPath Dir…

实验报告3

中国人民公安大学 Chinese people’ public security university 网络对抗技术 实验报告 实验三 密码破解技术 学生姓名 陆圣宇 年级 2014 区队 三 指导教师 高见 信息技术与网络安全学院 2016年11月7日 实验任务总纲 2016—2017 学年 第 一 学期 一、实验目的 1&am…

装机之windows10和ubuntu双系统

制作系统U盘 下载Ubuntu16.04 我们首先去Ubuntu的官网下载一个Ubuntu16.04的iso镜像文件。当然里面也有优麒麟,其实就是把Ubuntu16.04汉化了一下,个人推荐安装Ubuntu16.04 体验上可能好一些。 利用软碟通制作 不会的可以查看此教程https://blog.csdn…

函数之内置函数1

什么是内置函数:别人已经定义好了的函数,我们只管拿来调用就好 locals:局部作用域中的变量 globals:全局作用域中的变量 这两者在全局执行,结果一样;在局部中locals表示函数内的名字,返回的是一…

matlab var std,Matlab var std cov 函数解析

在Matlab中使用var求样本方差,使用std求标准差!首先来了解一下方差公式:p [-0.92 0.73 -0.47 0.74 0.29; -0.08 0.86 -0.67 -0.52 0.93]p -0.9200 0.7300 -0.4700 0.7400 0.2900-0.0800 0.8600 -0.6700 -0.5200 0.9300…

Java中什么是匿名对象,空参构造方法输出创建了几个匿名对象,属性声明成static...

package com.swift; //使用无参构造方法自动生成对象,序号不断自增 public class Person {private static int count; //如果在定义类时,使用的是静态的属性,则得到的结果是不同的。count生命周期长,与类相同public int id;public…

装机之制作系统U盘

工具:UltraISO(软碟通),iso镜像 在制作系统U盘的时候我们需要去下一个软件——UltraISO(软碟通),这个自己去百度搜索一下应该就能出来的。下载安装完以后,我们打开软碟通的界面打开…

访问index.php跳转,打开index.php后,跳转到/user/login.html

jeff2009-11-03 20:54:47注释后,产生这些错误:Notice: Undefined property: myRouter::$user in /data/zentaophp/app/pms/module/common/control.php on line 91Notice: Trying to get property of non-object in /data/zentaophp/app/pms/module/commo…

关于清空object对象里的属性的两种方法

最近碰到一个问题,就是要清空对象里的属性,我想了两个方法,做个结果的记录,都是自己的想法,有不对的地方请指教 var obj{};  //对象里的属性自己看着写吧 第一种方法: objnull; 这种方法看上去很快速&…

Linux 状态命令之系统调用和信号传递 strace

简介 strace 命令是一个集诊断、调试、统计与一体的工具,我们可以使用 strace 分析应用中涉及的系统调用和信号传递的跟踪结果,以达到解决问题或者是了解应用工作过程的目的。 strace 与专业的调试工具比如说 gdb 之类的是没法相比的,因为它…

李飞飞:为什么计算机视觉对机器人如此重要?

根据Guide2Research的排名,IROS是计算机视觉领域排名第四的学术会议,前三名分别为CVPR、ICCV、ECCV。计算机视觉在机器人的发展史中起着非常重要的作用,与之相关的“感知”也正是历年IROS大会上的重要内容,随着机器人研究的发展和…

php 循环 显示 图片,thinkphp 循环显示图片问题!!!~~~~

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼class CatController extends Controller {public function cat(){$goodsModel D(Admin/goods);$goodslist $goodsModel->field(goods_id,goods_name,shop_price,goods_img,market_price)->where(cat_id)->select();$th…

python flask 基础入门

1. Flask 中的Hello World! 在使用pycharm创建一个Flask项目后,将会默认创建一个flask的app,这里来讲下每行代码表示的意义,代码入下 from flask import Flask    # 导入flask模块 如果没有这个模块需要使用pip install flask 进行安装…

[C/C++]各种面试题

各种面试题 *程序的内存分配 一个由c/C编译的程序占用的内存分为以下几个部分 1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap&#xf…

linux 命令 which whereis locate find

0、概述 * which:在PATH变量指定的路径中,搜索与指定名字匹配的系统命令的位置,并且返回第一个搜索结果。 * whereis:搜索与指定名字匹配的二进制文件、源文件和帮助手册文件所在的路径。二进制文件(参数-b&…

python 转 exe -- py2exe库实录

本文基于windows 7 python 3.4 把python程序打包成exe,比较好用的库是py2exe 其操作步骤是: --> 编写python程序 --> 再额外编写一个导入了py2exe的python脚本(不妨如:setup.py)存在同一目录下 --> 运行这个脚本,打包生成的exe文件…

python网络爬虫面试题,搞定这套Python爬虫面试题(面试会so easy)

搞定这套Python爬虫面试题(面试会so easy)来源:中文源码网 浏览: 次 日期:2019年11月5日【下载文档: 搞定这套Python爬虫面试题(面试会so easy).txt 】(友情提示:右键点上行txt文档名->目标另存为)搞定这套Python爬虫面试题(面试会…

fastjson与spring mvc整合的配置

fastjson 是阿里巴巴开发的开源json解析组件&#xff0c;方便于通过java来生成和解析json格式的字符串和对象。 fastjson可以对Spring的返回数据进行json转换&#xff08;SpringMVC的ResponseBody注释&#xff09; 以下附上与spring mvc整合的xml配置&#xff1a; <mvc:anno…