因为Gradle越来越常用,除了maven之外学习一下Gradle显得很有必要。
项目构建历史
石器时代
依赖管理:最开始的时候如果需要依赖第三方的ar包需要把jar放到lib目录中,如果jar包多了不好管理很容易出现版本冲突问题每个项目需要使用到同一个jar包都得拷贝一份到项目中很占用存储空间。
测试:每个功能都需要书写测试类在main中写测试非常麻烦能不写一般都是不会写,就算写了也是很简单的测试下而已。
打包:通过 eclipse打包然后传递到服务器或者放入依赖的项目中麻烦繁琐
上传:通过一些文件上传工具(FTP)上传jar包到项目下
以上这些操作都是比较频繁的但是很多操作都不能省略像这种重复而又没有技术含量的操作是很无聊的所以就有了构建工具的出现
工业时代
利用构建工具
依赖管理:可以做依赖管理将jar包统一管理起更加的清晰和方便而且仅仅是依赖管理没有拷贝jar包到项目中
自动化:可以自动测试打包发布
原则:机器能做的事情绝不自己动手去做大大提高开发效率
主流的构建工具
Ant(Apache Ant)
软件编译、测试、部署等步骤联系在一起加以自动化的一个工具,大多用于Java环境中的软件开发。
Maven
从Ant中借用了绝大多数构建任务其突出的是依赖管理和项目发布
Gradle
使用 Groovy 语言构建脚本不再像 Maven一样使用XML
Gradle介绍
一个开源的项目自动化构建工具建立在 Apache Ant 和 Apache Maven概念的基础上并引入了基于 Groovy 的特定领域语言(DSL)不再使用XML形式管理构建脚本。
DSL(Domain Specific Language)定义:针对某一领域,具有受限表达性的一种计算机程序设计语言。只针对一个领域做出来的简洁语言而非为了通用而设计。
Groovy介绍
什么是Groovy
Groovy是基于Java虚拟机的一种敏捷的动态语言,它是一种成熟的OOP(面向对象)编程语言,既可以用于面向对象编程,又可以用作纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。
与Java相比Groovy的不同点或优势
1. Groovy完全兼容ava语法可做脚本也可做类;
2. 分号是可选的,一般不加分号以换行作为结束;
3. 类、方法、字段都是公共的没有访问权限限制;
4. 默认生成具名(名值对)参数构造器 key: value;
5. 字段不定义访问权限时编译器自动给字段添加 getter/setter方法;
6. 字段可使用点来获取,无访问权限的也可使用 getter/setter来操作;
7. 方法可省略return关键字,自动检索最后一行的结果作为返回值;
8. 空值比较不会有 NullPointerExceptions异常抛出。
Groovy的高级特性
1. aset断言:可以用 assert 代替之前 Java 的断言语句;
2. 可选类型:可使用类 JavaScript 的弱类型可使用 def 来表示任意类型,类似于JS里面的var;
3. 方法调用:调用带参方法时可省略括号;
4. 字符串定义:字符串定义有三种方式:单引号、双引号、三个单引号;
5. 集合API:集合的定义和使用更加简单,APl和Java有所不同,但兼容 Java API;
6. 闭包:Groovy的一大特性,跟方法类似的代码块可赋给一个变量也可以做为参数传递给一个方法像普通方法一样调用。
Groovy下载安装
Windows下载地址
http://groovy.apache.org/download.html 或者直接 点击下载4.0.0-alpha-2 binaryZIP压缩包
MAC安装
海外服务器,下载速度全看命
brew install groovy
查看是否安装成功
MacBook-Pro bin % groovy -v
Groovy Version: 3.0.7 JVM: 15.0.1 Vendor: Oracle Corporation OS: Mac OS X
由此可见安装已成功