一、Gradle简介
1.1 Gradle是什么
Gradle是一个基于Apache Ant和Apache Maven概念的项目自动化构建工具。它使用一种基于Groovy的特定领域语言(DSL)来声明项目设置,抛弃了基于XML的各种繁琐配置。
1.2 Gradle解决的问题
Java的构建,经历了从Ant-->Maven->Gradle的过程,每一次的进步,都是为了解决之前的工具带来的问题:
(1)Ant:Ant的功能虽然强大,但过于灵活,规范性不足,对目录结构及build.xml没有默认约定,且没有统一的项目依赖管理。
(2)Maven:Maven解决了规范性的问题,也顺带解决了依赖项统一管理的问题,但由于规范性太强,灵活性不足,pom.xml采用Xml结构,项目一大,Xml就显得冗长。
(3)Gradle:综合了Ant和Maven的优点,吸收了Ant中task的思想,然后把Maven的目录规范以及仓库思想也融合了进来,但允许用户自由的修改默认的规范(如,可随意修改源码目录),配置文件则采用Groovy语言来书写,Groovy是一门可编程语言,配置文件本身就可以视为一份源代码,并最终交由Gradle来处理执行。
1.3 Gradle构建简介
Gradle中有两个基本概念,即项目与任务;
项目是工程的构建产物(如Jar包)或实施产物(用以部署到生产环境,如war)。一个项目中包含一个或多个任务。
任务则是不可分的最小工作单元,执行构建工作(如编译项目或执行测试)
每一次Gradle的构建都包含一个或多个项目,示意图如下:
Gradle中使用以下配置文件对Gradle的构建进行配置:
(1)Gradle构建脚本(build.gradle):指定了一个项目和它的任务,每个gradle工程都必须有的文件。
(2)Gradle属性文件(gradle.properties):用于配置构建属性。
(3)Gradle设置文件(gradle.settings):对于单一项目的构建而言是可选的,如果打算构建多项目,则必须存在。它描述了哪一个项目参与了构建,每一个多项目的构建都必须要在项目结构的根目录中加入一个settings文件。
1.4 Gradle插件
gradle的设计理念是,所有有用的特性都由Gradle插件提供,它可以:
(1)在项目中添加新的任务
(2)为新加入的任务提供默认配置,这个默认配置会在项目中注入新的约定
(3)加入新的属性,可以覆盖插件的默认配置属性。
(4)为项目加入新的依赖。
1.5 Gradle生命周期分析
1初始化构建
2配置构建
3执行构建
4完成构建或者失败
1.6 Gradle优点
Gradle Wrapper防止构建环境造成的问题
优秀的API与工具集成
内置Maven与Ivy进行依赖管理
基于Groovy的领域专用语言DSL描述和控制构建逻辑
1.7 Gradle特点
(1)基于声明和基于约定的构建。
(2)依赖型的编程语言。
(3)可以结构化构建,易于维护和理解。
(4)有高级的API允许你在构建执行的整个过程当中,对它的核心进行监视,或者是配置它的行为。
(5)有良好的扩展性。有增量构建功能来克服性能瓶颈问题。
(6)多项目构建的支持。
(7)多种方式的依赖管理。
(8)是第一个构建集成工具。集成了Ant, maven的功能。
(9)易于移值。
(10)脚本采用Groovy编写,易于维护。
(11)通过Gradle Wrapper允许你在没有安装Gradle的机器上进行Gradle构建。
(12)自由,开源。
二、Groovy简介
2.1 Groovy是什么
Groovy是用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编程语言,即可以用于面向对象编程,又可以用作纯粹的脚本语言。 使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性
2.2 Groovy特点
动态语言:运行时检查数据的类型
基于JVM
扩展JDK:对JDK中的类型进行扩展,封装方法调用简化开发
元编程:注入、拦截、合并、委托方法、操作编译运行行为
2.3 Groovy高效特性
assert语句
可选类型定义
可选的括号
字符串
2.4 Groovy与java对比
Groovy完全兼容Java的语法
分号是可选的
类、方法默认是public的
==等同于equals(),不会有NullPointerExceptions异常
网友评论