【Gradle系列】初识Gradle

为何要学习gradle?

gradle是主要用来工程构建,自动化建设用的java

有朋友问,已经学会了ant,maven等来构建工程了,为何咱们还要学习gradle?python

由于gradle是一款最新的,功能最强大的构建工具面试

ant,maven能作的事情,gradle必定能够作,可是gradle能作的,其它不必定能作编程

同时,gradle不只仅是一个工具那么简单,是用程序替代传统的xml配置,使项目构建更加灵活浏览器

举个例子:xml语言写个if-else使很是困难,可是gradle却很是的简单ruby

还有就是,咱们的gradle有丰富的第三方插件,能够为所欲为使用服务器

做为一名开发者,能够完善安卓开发工程师/java开发工程师的技术体系,提高自动化构建技术深度,帮助进阶为高级/资深工程师markdown

由于如今安卓工程/java工程都在使用gradle来构建项目闭包

不少人认为,构建不就是构建出一个apk文件,一个jar包这么简单?jvm

gradle技术有那么深奥?

在公司最终负责构建的人,通常都是级别比较高的同窗,甚至是一些经理,总监等

由于咱们写再多的代码,最终都是为了最后的构建文件

因此这个环节是很是重要的,若是要成为高级/资深工程师,gradle是必须掌握的一项技能

为何?

由于在如今的一线互联网企业,面试的时候绝大部分会考到自动化构建

若是掌握了如何使用gradle实现自动化构建,那么就比别的竞争者有更大的优点

什么是Groovy语言?

Gradle是使用Groovy语言实现的

Groovy语言就是DSL的一个分支

在了解Groovy前,咱们要先搞清楚DSL它本身的一些概念

DSL,领域特定语言

其实咱们很早就接触了DSL语言了,只是没有这个概念而已

好比:matlab,这个专门用来作计算的语言,其就是DSL语言的一种

还有uml建模语言,把现实的模型转换为计算机模型,也是DSL模型的一种

还有HTML,这个语言也算DSL语言的一个分支,专门用来作浏览器页面的

因此DSL本质上来说,并非一个陌生的概念

这个语言和咱们的系统语言,走的是两个极端

系统编程语言宗旨是解决全部的问题,好比:java既但愿能作安卓开发,又但愿能作服务器开发

而DSL语言产生的初衷是,解决计算机相关某一个特定领域内的问题

系统编程语言是大而全,DSL语言是小而细

因此DSL是和咱们的系统开发语言是相铺相成的,相互结合会产生巨大的做用

在掌握某一个开发语言基础下,再去掌握一门DSL语言,那么就是锦上添花的效果

那么,DSL和咱们的普统统用编程语言,有哪些区别?

DSL纵向,往深度发展的;

系统编程语言,横向往更广的应用范围去发展;

这个是它们最大的区别

Groovy语言特色

接下来,咱们来看下groovy的基本概念

首先,groovy是一种基于jvm的敏捷开发语言

基于jvm说明它和咱们的java背后运行的原理,彻底是同样的

咱们都知道,java想要运行,首先须要将咱们的java文件编译为class文件

而后class文件交给咱们的jvm去运行

groovy和java语言是同样的,groovy源文件编译为class字节码文件,而后交给咱们的jvm运行

固然,这个还不足与体现咱们groovy的强大

groovy还能将咱们的groovy源文件直接解释执行,像JavaScript同样

接下来看下第二个特色

groovy结合了python,ruby和smalltalk 的许多脚本语言的强大特性

咱们都知道,脚本语言写脚本都是很是强大的,因此groovy写脚本也能够6到飞起

既然有了不少强大的脚本语言,为何还须要groovy?

若是咱们做为一门java开发者,而后如今去学习python语言等,至关于从头开始学习新的语言

而咱们的groovy能够不这样,由于groovy就是对咱们java的一种扩展

其语法和咱们的java很是的相似,因此能够学习java的方式学习groovy

因此,在java基础上学习groovy,比学习其它语言要快点

第三,就是咱们的groovy能够与java版本完美结合,这一点从都是基于jvm能够看出来

同时,groovy可使用java全部的库,是否是很酷?

….到这里了解了groovy的相关概念,接下来咱们来看下groovy的特性

首先它最大的一个特性是语法上支持动态类型,闭包等新一代脚本语言特性

其中groovy的闭包比其它语言的会强大一些

第二,就是能够无缝集成已存在的java类库,能够用java的语法/库等写咱们的groovy程序,可是通常咱们不会这么作

虽然groovy的语法和java相似,可是仍是作了比较多的修改的

第三,groovy既支持面向对象编程,也支持面向过程编程

面向对象是由于groovy是基于java的一个拓展,java是一个面向对象编程的语言

面向过程是由于groovy结合了python等脚本语言的特性

若是用groovy开发程序,那么就会用到面向对象特性

若是用groovy开发脚本,那么就会用到面向过程特性

……在了解完特性后,咱们看看groovy的优点….

首先,groovy是一种更加敏捷的编程语言

由于其在语法上作了很是多的语法堂,许多在java上写的在groovy中能够直接省掉,也就是用更少的代码写出一样的功能

第二个优点是,入门容易,功能强大

入门容易指掌握java下,去学习groovy是很是简单的

第三,既能够做为编程语言,也能够做为脚本语言

结尾

哈哈,该篇就写到这里(一块儿体系化学习,一块儿成长)

相关文章
相关标签/搜索