23

Gradle 从入门到精通系列(一):为什么要用 Gradle?

 4 years ago
source link: https://mp.weixin.qq.com/s/7wmhi09-49WQp2N4KBuaUg
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

点击关注上方“ 大前端圈

设为“置顶或星标”,第一时间送达技术干货。

7fuMBff.jpg!web

  1. Gradle是什么

  • DSL

  • Groovy

Gradle有什么特性

为什么要用Gradle

一,Gradle是什么

  • Gradle一个基于JVM的开源的新一代构建工具。

  • Gradle就是工程的管理,帮我们做了依赖、打包、部署、发布、各种渠道的差异管理等工作。

  • 构建工具可以让项目开发的工作实现自动化。自动化可以自定义有序的步骤来完成代码的编译、测试和打包等工作,让重复的步骤变得简单。

  • Gradle是以Groovy语言为基础,面向Java应用为主。基于DSL语法的自动化构建工具。

DSL概念介绍:

  • 全称:

DSL(domain specific language,即特定领域语言)

  • 有哪些常见的DSL语言:

xml

html

  • DSL与通用编程语言的区别:

求专不求全,解决特定问题

Groovy介绍

a. Groovy:

  1. 一种基于JVM的敏捷开发语言

  2. 结合了Python、Ruby和Smalltalk的许多强大的特性

  3. Groovy可以与Java完美结合,而且可以使用Java所有的库

b. Groovy特性:

  1. 语法上支持动态类型、闭包等新一代语言特性

  2. 无缝集成所有已经存在的Java类库

  3. 既支持面向对象编程也支持面向过程编程

c. Groovy优势:

  1. 一种更加敏捷的编程语言

  2. 入门非常的容易,且功能非常的强大

  3. 既可以作为编程语言也可以作为脚本语言

groovy是一种基于java虚拟机的动态语言。基于动态语言的DSL语言与Ant或者任何基于XML的构建系统相比有显著优势。

二,Gradle有什么特性

1,约定优于配置,即为设置和属性提供默认值。

Gradle可以为构建你的项目提供引导和默认值,如果你使用这种约定,你的Gradle构建脚本不会有几行。比起Ant,Gradle不仅仅提供了约定,还可以让你轻松的打破约定。

2,Gradle Wrapper

Gradle Wrapper是对Gradle 的包装,它的作用是简化Gradle本身的下载、安装和构建,比如它会在我们没有安装Gradle的情况下,去下载指定版本的Gradle并进行构建。Gradle的版本很多,所以有可能出现版本兼容的问题,这时就需要Gradle Wrapper去统一Gradle的版本,避免开发团队因为Gradle版本不一致而产生问题。

3,强大的依赖管理

Gradle提供了可配置的可靠的依赖管理方案。一旦依赖的库被下载并存储到本地缓存中,我们的项目就可以使用了。依赖管理很好的实现了在不同的平台和机器上产生相同的构建结果。

4,构建脚本使用Groovy或Kotlin DSL编写

Ant和Maven的构建脚本是由XML来编写的,如果XML逻辑复杂内容太多就不容易维护。Gradle可以使用Groovy DSL来实现构建脚本,Groovy 是基于Jvm一种动态语言,它的语法和Java非常相似并兼容Java,因此你无需担心学习Groovy的成本。Groovy在Java的基础上增加了很多动态类型和灵活的特性,比起XML,Gradle更具有表达性和可读性。Groovy编写构建脚本代码量更少,可读性更强。

5,可以和其他构建工具集成

Gradle可以和Ant、Maven和Ivy进行集成,比如我们可以把Ant的构建脚本导入到Gradle的构建中。

三,为什么要用Gradle

从上图可以看出,Gradle结合Ant和Maven等构建工具的最佳特性。它有着约定优于配置的方法、强大的依赖管理,它的构建脚本使用Groovy或Kotlin DSL编写,是Android的官方构建工具。

同为构建工具与maven比较,maven缺点是什么:

  1. Maven的提供了默认的结构和生命周期,这些可能不适合你的项目需求。

  2. 为Maven写定制的扩展过于累赘。

  3. Maven的中央仓库比较混乱,当无法从中央仓库中得到需要的类库时,我们可以手工下载复制到本地仓库中,也可以建立组织内部的仓库服务器。

  4. 国内连接Maven的中央仓库比较慢,需要连接国内的Maven镜像仓库。

  5. Maven缺乏文档,不便于使用和理解

四,总结一下:

本文介绍了Gradle是什么,Gradle的特性,这些特性和其他竞争的构建工具相比有着很大的优势和吸引力,这也是为什么我们现在要用Gradle的原因。

下篇预告:gradle安装,基本语法,常用命令

感谢

1,《实战Gradle》

2,《Android Gradle权威指南》

3,  https://www.jianshu.com/p/2d887a9b69fb

4,  https://www.w3cschool.cn/gradle/6qo51htq.html

aaUvieu.jpg!web


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK