11-Gradle 安装 new
- 官网地址: https://gradle.org/
1、Gradle安装
1.1、Gradle安装说明
SpringBoot 官方文档明确指出,目前 SpringBoot 的 Gradle 插件需要 gradle6.8 版本及以上,所以我们这里选择 7.x 版本。
其中 SpringBoot 与 Gradle 存在版本兼容问题,Gradle 与 Idea 也存在兼容问题,所以考虑到 java 程序员会使用 SpringBoot,所以要选择 6.8 版本及高于 6.8 版本的 Gradle,那么相应的 idea 版本也要升级,不能太老哦。
详见:Spring Boot Gradle Plugin Reference Guide
1.2、安装JDK
要求 Jdk 为 1.8 或者 1.8 版本以上。
1.3、下载并解压到指定目录
解压到指定目录: D:\software\gradle-7.4.1
1.4、配置环境变量
特别注意:这里我们接着再配置一个 GRALE_USER_HOME 环境变量,GRALE_USER_HOME 相当于配置 Gradle 本地仓库位置和 Gradle Wrapper 缓存目录。
1.5、检测是否安装成功
运行 gradle -v
或者 gradle --version
检测是否安装成功
2、Gradle 项目目录结构
Gradle 项目默认目录结构和 Maven 项目的目录结构一致,都是基于约定大于配置【Convention Over Configuration】。
其完整项目目录结构如下所示:
- 只有 war 工程才有 webapp 目录,对于普通的 jar 工程并没有 webapp 目录。
- gradlew 与 gradlew.bat 执行的指定 wrapper 版本中的 gradle 指令,不是本地安装的 gradle 指令哦。
3、Gradle 创建第一个项目
借助于 spring 脚手架创建 gradle 第一个项目:https://start.spring.io/
查看生成的 gradle 项目目录结构如下所示:
与上图对比会发现:总体的目录结构与上图说明的是一致的。
4、Wrapper 包装器
Gradle Wrapper 实际上就是对 Gradle 的一层包装,用于解决实际开发中可能会遇到的不同的项目需要不同版本的 Gradle 问题。例如:把自己的代码共享给其他人使用,可能出现如下情况:
- 对方电脑没有安装 gradle
- 对方电脑安装过 gradle,但是版本太旧了
这时候,我们就可以考虑使用 Gradle Wrapper 了。这也是官方建议使用 Gradle Wrapper 的原因。实际上有了 Gradle Wrapper 之后,我们本地是可以不配置 Gradle 的,下载 Gradle 项目后,使用 gradle 项目自带的 wrapper 操作也是可以的。
那如何使用 Gradle Wrapper 呢?
项目中的 gradlew、gradlew.cmd 脚本用的就是 wrapper 中规定的 gradle 版本。参见源码
而我们上面提到的 gradle 指令用的是本地 gradle,所以 gradle 指令和 gradlew 指令所使用的 gradle 版本有可能是不一样的。
gradlew、gradlew.cmd 的使用方式与 gradle 使用方式完全一致,只不过把 gradle 指令换成了 gradlew 指令。
当然,我们也可在终端执行 gradlew 指令时,指定指定一些参数,来控制 Wrapper 的生成,比如依赖的版本等,如下:
参数名 | 说明 |
---|---|
–gradle-version | 用于指定使用的gradle版本 |
–gradle-distribution-url | 用于指定下载gradle发行版的url地址 |
具体操作如下所示 :
1 |
|
GradleWrapper 的执行流程:
- 当我们第一次执行
./gradlew build
命令的时候,gradlew 会读取 gradle-wrapper.properties 文件的配置信息 - 准确的将指定版本的 gradle 下载并解压到指定的位置(
GRADLE_USER_HOME
目录下的wrapper/dists
目录中) - 并构建本地缓存(
GRADLE_USER_HOME
目录下的 caches 目录中),下载再使用相同版本的 gradle 就不用下载了 - 之后执行的
./gradlew
所有命令都是使用指定的 gradle 版本。如下图所示:
gradle-wrapper.properties
文件解读:
字段名 | 说明 |
---|---|
distributionBase | 下载的gradle压缩包解压后存储的主目录 |
distributionPath | 相对于distributionBase的解压后的gradle压缩包的路径 |
zipStoreBase | 同distributionBase,只不过是存放zip压缩包的 |
zipStorePath | 同distributionPath,只不过是存放zip压缩包的 |
distributionUrl | gradle发行版压缩包的下载地址 |
注意:前面提到的 GRALE_USER_HOME
环境变量用于这里的 Gradle Wrapper 下载的特定版本的 gradle 存储目录。如果我们没有配置过 GRALE_USER_HOME
环境变量,默认在 当前用户 家目录下的 .gradle
文件夹中。
那什么时候选择使用 gradle wrapper、什么时候选择使用本地 gradle?
- 下载别人的项目或者使用操作以前自己写的不同版本的gradle项目时:用Gradle wrapper,也即:gradlew
- 新建一个项目时: 使用gradle指令即可。