Gradle
Gradle
是基于groovy,可切换的,像Maven一样基于约定优于配置的构建框架,构建脚本默认为build.gradle
。
Gradle出现之前Java的三个构建工具:Ant
、Gant
和Maven
;
- 1.
Ant
是由Java编写的构建工具,它的核心代码是由Java编写的,与平台无关,构建脚本默认为bulid.xml
; - 2.
Gant
是一个基于Ant的构建工具,它在Ant的基础上用Groovy写的DSL,构建脚本默认为build.gant;
- 3.
Maven
继承了Ant的项目构建功能,具有依赖管理和项目管理的功能,提供了中央仓库,构建脚本默认为pom.xml
;
本文基于Gradle 5.5 版本
1 基本概念
1.1设计理念
- 1.在项目中添加新任务
- 2.为新加入的任务提供默认配置,这个默认配置会在项目中注入新的约定(如源文件位置)。
- 3.加入新的属性,可以覆盖插件的默认配置属性。
- 4.为项目加入新的依赖。
1.2 基本概念
Gradle中的两个重要概念:项目
和任务
。
- 1.
项目
是指我们的构建产物(比如Jar包)或实施产物(将应用程序部署到生产环境)一个项目包含一个或多个任务。 - 2.
任务
是指不可分的最小工作单元,执行构建工作(比如编译项目或执行测试)。
在项目目录中的build.gradle
指定了一个项目
和它的许多子任务
。
2 仓库
Gradle完全支持用于发布或检索依赖的Maven
和Ivy
仓库。
Gradle也会将依赖缓冲在本地中,方便在无网的环境使用,Linux/MacOS
下缓存路径为: ~/.gradle
。
参考:https://docs.gradle.org/current/userguide/declaring_dependencies.html
2.1 加入Maven仓库
Gradle提供了三种“别名”
供我们使用,它们分别是:
- 1.mavenCentral()别名,表示依赖是从Central Maven 2 仓库中获取的。
- 2.jcenter()别名,表示依赖是从Bintary’s JCenter Maven 仓库中获取的。
- 3.mavenLocal()别名,表示依赖是从本地的Maven仓库中获取的。
也可自定义仓库路径:
- 4.自定义仓库地址的maven仓库,表示依赖是指定
URL
的Maven仓库中获取的。
repositories {
mavenCentral()
jcenter()
maven {
url 'http://maven.aliyun.com/nexus/content/groups/public/'
}
}
注:
mavenCentral()
访问的地址为:https://repo1.maven.org/maven2
由于国内网络的问题这个地址经常无法使用
,解决办法是把https
换成http
:
maven { url 'http://repo1.maven.org/maven2' }
3 Task
每个项目都由不同的任务组成;
任务是真正
做事情的角色,构建过程中的真正执行者
;
Task做的事情:
- 编译类
- 将类文件存储到指定的文件夹中
- 创建JAR
- 生成Javadoc或将