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实现自动化构建,那么就比别的竞争者有更大的优点
Gradle是使用Groovy语言实现的
Groovy语言就是DSL的一个分支
在了解Groovy前,咱们要先搞清楚DSL它本身的一些概念
DSL,领域特定语言
其实咱们很早就接触了DSL语言了,只是没有这个概念而已
好比:matlab,这个专门用来作计算的语言,其就是DSL语言的一种
还有uml建模语言,把现实的模型转换为计算机模型,也是DSL模型的一种
还有HTML,这个语言也算DSL语言的一个分支,专门用来作浏览器页面的
因此DSL本质上来说,并非一个陌生的概念
这个语言和咱们的系统语言,走的是两个极端
系统编程语言宗旨是解决全部的问题,好比:java既但愿能作安卓开发,又但愿能作服务器开发
而DSL语言产生的初衷是,解决计算机相关某一个特定领域内的问题
系统编程语言是大而全,DSL语言是小而细
因此DSL是和咱们的系统开发语言是相铺相成的,相互结合会产生巨大的做用
在掌握某一个开发语言基础下,再去掌握一门DSL语言,那么就是锦上添花的效果
那么,DSL和咱们的普统统用编程语言,有哪些区别?
DSL纵向,往深度发展的;
系统编程语言,横向往更广的应用范围去发展;
这个是它们最大的区别
接下来,咱们来看下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是很是简单的
第三,既能够做为编程语言,也能够做为脚本语言
哈哈,该篇就写到这里(一块儿体系化学习,一块儿成长)