Gradle 项目默认目录结构和 Maven 项目的目录结构一致,都是基于约定大于配置【Convention Over Configuration】。
其完整项目目录结构如下所示:

1、只有war工程才有webapp目录,对于普通的jar工程并没有webapp目录
2、gradlew与gradlew.bat执行的指定wrapper版本中的gradle指令,不是本地安装的gradle指令哦。
spring 脚手架创建 gradle 第一个项目:https://start.spring.io/



与上图对比会发现:总体的目录结构与上图说明的是一致的。

需要注意的是:gradle 的指令要在含有 build.gradle 的目录执行。
Gradle Wrapper 实际上就是对 Gradle 的一层包装,用于解决实际开发中可能会遇到的不同的项目需要不同版本的 Gradle 问题。例如:把自己的代码共享给其他人使用,可能出现如下情况:
1.对方电脑没有安装 gradle 2.对方电脑安装过 gradle,但是版本太旧了
这时候,可以考虑使用 Gradle Wrapper 了。这也是官方建议使用 Gradle Wrapper 的原因。
实际上有了 Gradle Wrapper 之后,我们本地是可以不配置 Gradle 的,
下载 Gradle 项目后,使用 gradle 项目自带的 wrapper 操作也是可以的。
项目中的gradlew、gradlew.cmd脚本用的就是wrapper中规定的gradle版本。参见源码 而我们上面提到的gradle指令用的是本地gradle,所以gradle指令和gradlew指令所使用的gradle版本有可能是不一样的。
gradlew、gradlew.cmd的使用方式与gradle使用方式完全一致,只不过把gradle指令换成了gradlew指令。
当然,我们也可在终端执行 gradlew 指令时,指定指定一些参数,来控制 Wrapper 的生成,比如依赖的版本等,如下:

gradle wrapper --gradle-version=4.4:升级wrapper版本号,只是修改gradle.properties中wrapper版本,未实际下载
gradle wrapper --gradle-version 5.2.1 --distribution-type all :关联源码用


注意:前面提到的 GRALE_USER_HOME 环境变量用于这里的 Gradle Wrapper 下载的特定版本的 gradle 存储目录。
如 果我们没有配置过 GRALE_USER_HOME 环境变量,默认在当前用户目录下的.gradle 文件夹中。
下载别人的项目或者使用操作以前自己写的不同版本的gradle项目时:用Gradle wrapper,也即:gradlew
什么时候使用本地gradle?
新建一个项目时: 使用gradle指令即可。
可自定义使用项目的gradle

也可以 修改gradle-wrapper.properties 配置文件。

