1. 主流构建工具比较:Ant:编译、测试、打包
Maven:依赖管理
Gradle: Groovy
优点:具有表达式的语言和强大的API ; Gradle就是Groovy ; 和其他构建工具的集成 ;可扩展的构建 ;依赖管理等。
2.Gradle是什么:一个开源的项目自动化构建工具,建立在Apache Ant和Apache Maven的概念的基础上,并引入了基于Groovy的特定领域语言(DSL),而不在使用XML形式管理构建脚本。
3.学习路线:Gradle安装、Groovy基础知识、第一个Gradle项目、构建脚本;依赖管理;多项目构建;Gradle测试;打包和发布等。
4.Groovy是什么:Groovy是用于java虚拟机的一种敏捷的动态语言,它是一种成熟的面向对象编语言,既可以用于面向对象编程,又可以作为纯粹的脚本语言。使用该种语言不必编写过多的代码,同时又具有闭包和动态语言中的其他特性。
Groovy与java基础特性对比:
Groovy完全兼容java语法 ;分号是可选的 ;类、方法默认是public
编译器给属性自动添加getter/setter方法
属性可以直接用点号获取
最后一个表达式的值会被作为返回值
==等同于equals()不会有NullPointerExceptions
Groovy高级特性:assert语句;可选类型定义(def) ;字符串(单引号/双引号/三个单引号) ;集合API(List/Map) 闭包
构建脚本:Gradle构建中两个基本概念是项目( project)和任务(task),每个构建至少包含一个项目,项目中包含一个或者多个任务。在多项目构建中,一个项目可以依赖于其他项目。类似的,任何可以形成关系图来确保他们的执行顺序。
项目(project):一个项目代表一个正在构建的组件(比如一个jar文件),当构建启动后, Gradle会基于build.gradle实例化一个org.gradle.api.Project类,并且能够通过project变量使其隐式可用。
属性:group(组)、name(名称)、version(版本)
apply、dependencies、repositories、task
属性的其他配置方式:ext、gradle.properties
注意:先按group划分,按name确定 ,通过version确定构建历史。
方法:apply、dependencies 、 repositories、task
apply:应用一个插件 project上的一个方法
dependencies:这个项目依赖哪些架包、或者其他的项目
repositories:仓库 ,去哪个仓库找依赖的架包
先找到仓库 ,在仓库中根据group name version唯一确定一个组件
task:声明这个方法有什么任务的
任务(task):任务对应org.gradle.api.Task. 主要包括任务动作和任务依赖。任务动作定义了一个最小的工作单元。可以定义依赖于其他任务、动作序列和执行条件。
任务(task)中的方法: task是一个任务列表, doFirst是在任务列表的最前边添加一个动作;doLast:是在动作列表的末尾添加一个动作,一个任务可以执行多次doLast、doFirst(<<),一个任务列表中可以添加多个动作
dependsOn:声明任务依赖的
构建生命周期:
依赖管理:仓库的管理、不同版本的管理、版本冲突
常用仓库: mavenLocal/mavenCentral/jcenter
自定义maven仓库、文件仓库
http://search.maven.org/ 依赖的架包
Gradle对构建和运行Web应用都提供了扩展性支持,需要学习两个Web应用程序部署插件:
War和Jetty
Gradle构建工具的作用:
带你简单的对Gradle工具了解,还需要你深入研究。