文档章节

Android Gradle和Gradle插件区别

AwesomeQA
 AwesomeQA
发布于 2017/10/22 15:18
字数 907
阅读 44
收藏 1

一、引言

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

注意:不应该动态指定版本号,如"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引用地址如下:

五、Gradle与Gradle插件版本匹配

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

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

 

Plugin version Required Gradle version
1.0.0 - 1.1.3 2.2.1 - 2.3
1.2.0 - 1.3.1 2.2.1 - 2.9
1.5.0 2.2.1 - 2.13
2.0.0 - 2.1.2 2.10 - 2.13
2.1.3+ 2.14.1+

六、总结

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

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

© 著作权归作者所有

AwesomeQA
粉丝 7
博文 70
码字总数 55188
作品 0
海淀
QA/测试工程师
私信 提问
gradle 与 android gradle 插件的关系

名词解释: 1,Gradle: Gradle是一种构建工具,它使用一种基于Groovy的特定领域语言(DSL)来构建项目。不仅仅用于android 工程的构建。 2,Android Plugin for Gradle: 这就是为了编译and...

Carlyle_Lee
2018/07/14
0
0
AndroidStudio、gradle、buildToolsVersion关系

使用AndroidStudio 开发也已经2年了,每次gradle 或者studio 有推荐更新后,项目重新sync后都会报错,提示更新相应的其他版本,比如AndroidStudio、gradle、buildToolsVersion版本; 先来说说...

SuShine
2017/11/07
0
0
读书笔记--Android Gradle权威指南(上)

最近看了一本书《Android Gradle 权威指南》,对于 Gradle 理解又更深了,但不想过段时间就又忘光了,所以打算写一篇读书笔记,将书中一些我个人觉得蛮有用的点记录、总结一下。 前言 首先,...

请叫我大苏
2018/05/24
0
0
读书笔记--Android Gradle权威指南(下)

前言 最近看了一本书《Android Gradle 权威指南》,收获挺多,就想着来记录一些读书笔记,方便后续查阅。 本篇内容是基于上一篇:读书笔记--Android Gradle权威指南(上) 上一篇中我们讲了:...

请叫我大苏
2018/05/27
0
0
给 Android 开发者的 Gradle 入门指南

本文的目的是为您提供关于 Gradle 的高级概述,以及在开发 Android 应用程序时如何适应整个构建系统。 我将通过 Gradle 和 Gradle 的 Android 插件的基础知识,以及新的 Android 项目附带的默...

oschina
2017/11/22
3K
2

没有更多内容

加载失败,请刷新页面

加载更多

lua web快速开发指南(7) - 高效的接口调用 - httpc库

httpc库基于cf框架都内部实现的socket编写的http client库. httpc库内置SSL支持, 在不使用代理的情况下就可以请求第三方接口. httpc支持header、args、body、timeout请求设置, 完美支持各种h...

水果糖的小铺子
今天
3
0
通过四道常问面试题,带你了解什么是数据库分库分表

编者语:为了避免被误解为:「手里有把锤子,看什么都是钉子!」,说明一下不是什么业务都适合分布式数据库,更不是用了分布式数据库性能就一定能得到扩展。 其次:本文为纯干货,建议先转发...

老道士
今天
6
0
springmvc 整体流程

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR......

architect刘源源
今天
3
0
磁盘管理

先来看两个查看的命令 查看磁盘使用情况df 用法:df, df -h, df -m, df -k 查看目录或文件大小 用法:du -sh, du -sm, du -s(默认以k为单位) 新加一块盘如何操作 步骤:分区(可选)--> 格...

wzb88
今天
3
0
在 Linux 下确认 NTP 是否同步的方法

NTP 意即网络时间协议Network Time Protocol,它通过网络同步计算机系统之间的时钟。NTP 服务器可以使组织中的所有服务器保持同步,以准确时间执行基于时间的作业。NTP 客户端会将其时钟与 ...

Linux就该这么学
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部