是一种构建工具,它抛弃了基于XML的构建脚本,取而代之的是采用一种基于(现在也支持)的内部领域特定语言。
Gradle特点
Gradle是很成熟的技术,可以处理大规模构建
Gradle对多语言、多平台支持性更好
Gradle关注在构建效率上
Gradle发布很频繁,重要feature开发计划透明化
Gradle社区很活跃,并且增加迅速
安装Gradle
从 官网(https://gradle.org/install/)下载二进制文件。
解压Zip文件,加入环境变量(在PATH中加入GRADLE_HOME/bin目录)
如果在安装过程中遇到问题,可以进一步查看官方的安装指南(https://gradle.org/install/)。最后验证一下是否工作正常
Gradle快速体验
初始化一个项目
创建一个目录
初始化项目
Gradle目录结构
我们看看上一步我们生成了什么文件
├── build.gradle ❶
├── gradle
│ └── wrapper
│ ├── gradle-wrapper.jar ➋
│ └── gradle-wrapper.properties ➌
├── gradlew ➍
├── gradlew.bat ➎
└── settings.gradle ➏❶ 当前项目的配置脚本➋的执行jar包(后续介绍)➌的配置文件➍Unix 系执行脚本➎Windows 系执行脚本➏ 项目脚本设置
创建一个Task
提供了用于通过基于或的DSL创建和配置。项目包括一组,每个执行一些基本操作。
创建一个目录叫
在目录创建一个
在构建文件中定义一个名为Copy的类型,该任务将src目录复制到名为dest的新目录
groovy代码:
kotlin代码:
和是自定义的任意值。现在让我们执行这个
再一次我们就可以看见为我们创建了一个新的目录并且将 文件复制进去
Gradle Task
在中,有两个基本概念:项目和任务。
项目是指我们的构建产物(比如Jar包)或实施产物(将应用程序部署到生产环境)一个项目包含一个或多个任务。
任务是指不可分的最小工作单元,执行构建工作(比如编译项目或执行测试)。
在项目目录中的指定了一个项目和它的任务。
Task执行顺序
任务可能依赖于其他任务,或者可能被安排为始终在另一个任务之后运行。
我们可以用让我们的有顺序的运行起来
Gradle插件
看到这里,如果每一件事情我们都需要写岂不是会累死,而且很多功能是可以被复用的,所以提供一个功能,默认就内置了大量的插件,比如在中有一系列的功能。
groovy代码:
kotlin代码:
这个时候我们就可以利用一些额外的,举个例子,我们要把一个目录中的东西都打成一个压缩包。
groovy代码:
kotlin代码:
的设计理念是
在项目中添加新任务
为新加入的任务提供默认配置,这个默认配置会在项目中注入新的约定(如源文件位置)。
加入新的属性,可以覆盖插件的默认配置属性。
为项目加入新的依赖。
Gradle Java
内置了插件,Java插件将Java编译以及测试和捆绑功能添加到项目中。它是许多其他Gradle插件的基础。如果我们需要使用插件 修改
一旦导入了 Java 插件,就会有一系列的默认的配置值,并且会导入大量的我们从这些名字就可以看出来他们分别作作了, 和其他的设计理念类型,在也会嵌入一些生命周期,其实原理也就是我们之前看的执行顺序。
资源:Gradle插件仓库
Gradle依赖管理
先盗取一张官方的图
和类似,也会将依赖缓冲在本地中,方便在无网的环境使用,和依赖管理相关的有两个参数,举个例子。
Gradle支持以下仓库格式:
Ivy仓库
Maven仓库
Flat directory仓库
lvy仓库
我们可以通过URL地址或本地文件系统地址,将Ivy仓库加入到我们的构建中。
Maven仓库
在加入Maven仓库时,Gradle提供了三种“别名”供我们使用,它们分别是
别名,表示依赖是从Central Maven 2 仓库中获取的。
别名,表示依赖是从Bintary’s JCenter Maven 仓库中获取的。
别名,表示依赖是从本地的Maven仓库中获取的。
Flat Directory仓库
依赖管理
在配置完项目仓库后,我们可以声明其中的依赖,首先插件指定了若干依赖配置项
配置项中的依赖是依赖必须的。
配置项中包含的依赖在运行时是必须的。
配置项中包含的依赖在编译项目的测试代码时是必须的。
配置项中包含的依赖在运行测试代码时是必须的。
在最新版本中更是增加
配置项中的实现类
配置项中的暴露API
声明项目依赖
最普遍的依赖称为外部依赖,这些依赖存放在外部仓库中。一个外部依赖可以由以下属性指定:
属性指定依赖的分组(在中,就是)
属性指定依赖的名称(在中,就是)
属性指定外部依赖的版本(在中,就是)
声明项目文件依赖我们如何依赖本地的一些呢,正确的操作是如下
声明依赖排除项目
我们都知道在中我们有
而在中,我们可以这么做。
Gradle与Kotlin
我们想要在中增加非常的简单,仅仅需要在增加
大功告成,对了,默认的的源码路径是, 测试源码是如果需要修改可以使用
其他
Gradle Wrapper
做了三件事情
解析参数传入 gradlew
安装正确的版本
调用执行命令
Ops,为什么还需要安装,我们在用都知道,我们需要自己先安装好一个版本,因为发展多年,现在已经稳定,已经不存在很多个版本并存的现状了,但是我们依然需要去在每个机器上去安装,那我什么我们不能在自己的中就指定我们的构建工具呢?所以我们在中就可以发现这里也就是定义了我们的gradle所使用的版本。
Gradle In Real World
Gradle常用指令
枚列所有可用任务
构建配置属性
显示构建详情
在设置
或者在运行的
参考资料&推荐文档
Gradle入门教程(http://blog.jobbole.com/71999/)
Gradle介绍(https://www.jianshu.com/p/00d5469e25e7)
官方教材(https://guides.gradle.org/creating-new-gradle-builds/)
领取专属 10元无门槛券
私享最新 技术干货