点击关注上方“大前端圈”
设为“置顶或星标”,第一时间送达技术干货。
目录
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:
一种基于JVM的敏捷开发语言
结合了Python、Ruby和Smalltalk的许多强大的特性
Groovy可以与Java完美结合,而且可以使用Java所有的库
b. Groovy特性:
语法上支持动态类型、闭包等新一代语言特性
无缝集成所有已经存在的Java类库
既支持面向对象编程也支持面向过程编程
c. Groovy优势:
一种更加敏捷的编程语言
入门非常的容易,且功能非常的强大
既可以作为编程语言也可以作为脚本语言
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缺点是什么:
Maven的提供了默认的结构和生命周期,这些可能不适合你的项目需求。
为Maven写定制的扩展过于累赘。
Maven的中央仓库比较混乱,当无法从中央仓库中得到需要的类库时,我们可以手工下载复制到本地仓库中,也可以建立组织内部的仓库服务器。
国内连接Maven的中央仓库比较慢,需要连接国内的Maven镜像仓库。
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