Gradle学习-创建Springboot项目
## 准备工作 即将开始使用Gradle来创建项目,你需要做好以下准备工作: 1. 安装Java开发
渲染中...
## 准备工作
即将开始使用Gradle来创建项目,你需要做好以下准备工作:
1. 安装Java开发工具`Java Development Kit`,最低版本要求1.8,也就是常说的`JDK8`。
2. 推荐手动安装Gradle,如未安装,可参考:[Gradle学习-安装](https://oldmoon.top/post/66)。
3. 推荐安装Java开发工具`IntelliJ IDEA`。
> `IntelliJ IDEA`是当前主流Java开发工具,以后简称`IDEA`,本文示例也是基于该编辑器进行开发,建议读者安装`IDEA`,如果你是首次安装,会获得30天试用期,当然如果使用`Eclipse`也可以,功能大都相同,主要是操作习惯上有所区别。
<div class="article-ads"></div>
<!-- more -->
## 概要
本文将主要介绍使用`IDEA`通过`Spring Initializr`来创建Gradle的springboot项目的步骤,首先分为`Gradle-Groovy`和`Gradle-Kotlin`两个版本,最后我们尝试不使用`Spring Initializr`,手动创建项目。
本文除了讲解项目创建的流程外,还会解析项目初始化后的一些配置信息。
通过本文,你可以学到以下知识点:
1. Gradle项目配置的基本理解。
2. Gradle-Springboot项目搭建的基本方法。
## Spring Initializr
> 首先使用项目构建工具`Spring Initializr`来创建项目。
### Gradle-Groovy
#### 创建项目
1. 配置基本参数
打开`IDEA`项目创建页面,选择`Spring Initializr`创建工具,Type选择`Gradle-Groovy`,JDK一般默认为本地已安装的版本,Java选择与JDK对应的8,具体配置如下图:

选择好配置后,点击`Next`进入下一步。
2. 选择Springboot版本
本文选择Springboot的`2.7.9`版本,其他任何选项都无需勾选(后续都可以按需引入),如下图:

选择好版本后,直接点击`Create`,会自动创建一些基础的文件,并进入IDEA主界面,如下图:

#### 初始化项目
创建项目完成后,项目文件夹中只包含一些基础的配置文件,还缺少很多工具和依赖,如创建时选择的`Springboot2.7.9`,其实还没有包含在项目中,所以需要对项目进行初始化,来下载项目必要的一些工具和依赖项。
1. 配置Gradle
刚创建的gradle项目,`IDEA`会为其下载内置的gradle版本,本文建议将其配置为前面手动安装的`gradle-8.0.2`。
快速配置方式是:打开`IDEA`右侧的`Gradle`菜单栏,直接打开Gradle设置,如下图:
<img src="https://images.oldmoon.top/images/dingdangdog/dingdangdog-1679564963283.jpg" width=400px/>
打开配置页面后,修改其中的两项配置为你的gradle安装目录,如下图:

修改完成后,点击`OK`即可。
2. 开始初始化
当修改`Gradle`配置后,`IDEA`会自动更新项目,如果未更新,也可以点击Gradle菜单中的刷新按钮手动更新,刷新按钮如下图:
<img src="https://images.oldmoon.top/images/dingdangdog/dingdangdog-1679565329872.jpg" width=400px/>
初始化过程中,会联网从Maven中央仓库拉取相关依赖(Gradle使用的依赖仓库就是Maven仓库),通过build窗口可以看到下载情况:

> 该图是kotlin下的截图,但内容与Groovy下的一样。
下载完成后,可以看到build窗口的成功提示,即项目初始化完成。
#### 默认配置
通过上述步骤,应该已经创建并初始化成功了一个Gradle-Springboot的项目,其中与Gradle相关的文件有两个,都在项目根目录下:`setting.gradle`和`build.gradle`
1. setting.gradle
setting.gradle是模块声明文件,没有什么特殊的操作,其初始内容如下:
```groovy
rootProject.name = 'gradle-boot'
```
2. build.gradle
build.gradle是Gradle的重要配置文件,与Maven的`pom.xml`相对应,上面示例的初始内容如下:
```groovy
plugins {
id 'java'
id 'org.springframework.boot' version '2.7.9'
id 'io.spring.dependency-management' version '1.0.15.RELEASE'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
tasks.named('test') {
useJUnitPlatform()
}
```
该文件的内容解析放在最后,因为其与Kotlin语言的配置基本一样,后续会放到一起比较并说明。
<div class="article-ads"></div>
### Gradle-Kotlin
创建通过kotlin配置的gradle项目,与上述创建groovy配置的gradle项目步骤完全一样,只需要在最开始选择配置时`Type`选择Gradle-kotlin即可,所以此处省略详细步骤,参照[Gradle-Groovy](Gradle-Groovy)即可。
#### 默认配置
通过上述步骤创建并初始化项目后,与Groovy形式的区别就在配置文件的文件类型上,使用Kotlin的配置文件是:`setting.gradle.kts`和`build.gradle.kts`。
配置文件内容也基本相同,只是语法稍微有所变化:
1. setting.gradle.kts
```kts
rootProject.name = "gradle-boot-kts"
```
2. build.gradle.kts
```kts
plugins {
java
id("org.springframework.boot") version "2.7.9"
id("io.spring.dependency-management") version "1.0.15.RELEASE"
}
group = "com.example"
version = "0.0.1-SNAPSHOT"
java.sourceCompatibility = JavaVersion.VERSION_1_8
repositories {
mavenCentral()
}
dependencies {
implementation("org.springframework.boot:spring-boot-starter")
testImplementation("org.springframework.boot:spring-boot-starter-test")
}
tasks.withType<Test> {
useJUnitPlatform()
}
```
### build.gradle解析
> 通过上面`build.gradle`和`build.gradle.kts`的比较,可以看出配置的内容是一样的,只是语法有所变化,现编以`build.gradle`为分析对象,简单的将配置内容分为五块进行分析。
repositories:定义项目的仓库,这里只有一个中央仓库(mavenCentral())。
dependencies:定义项目的依赖项,其中包括:
implementation:应用依赖项,这里是Spring Boot的starter依赖。
testImplementation:测试依赖项,这里是Spring Boot的starter-test依赖。
tasks.named('test'):对test任务进行配置,使用JUnit 5作为测试框架。
1. plugins
该标签用于引入本项目要使用的gradle插件,如本项目引入了`Java`、`org.springframework.boot`、`io.spring.dependency-management`三个插件,每个插件提供相应的内置功能。
- `java`:Java插件,该插件会自动为项目配置Java编译环境和相关任务。
- `org.springframework.boot`:Spring Boot插件,该插件会自动为项目配置Spring Boot应用所需的基本配置。
- `io.spring.dependency-management`:Spring Boot依赖管理插件,该插件会自动管理Spring Boot应用所需的依赖版本。
Gradle插件官方说明文档:[Using Gradle Plugins](https://docs.gradle.org/current/userguide/plugins.html)
Gradle官方插件中心:[Gradle - Plugins](https://plugins.gradle.org/)
在管理中心,用户可以自己上传自定义的插件供别人使用,也可以搜索已提供的插件。
2. properties
配置文件中没有明确的`properties`标签,我将零散的配置定义统称为`properties`,如:
- `group`:指定项目的groupId。
- `version`:指定项目的版本号。
- `sourceCompatibility`:指定Java源代码的版本兼容性,这里是1.8,也就是Java 8。
3. repositories
该标签用于配置依赖仓库的地址,可以多仓库,本示例中默认使用Maven的中央仓库。在使用Maven时,我们是在Maven的`setting.xml`中进行仓库地址配置。
4. dependencies
该标签用于管理项目的依赖项,与Maven中的`dependencies`标签相对应。
5. tasks
改变前用于配置一些任务项,在本示例中:
```
tasks.named('test') {
useJUnitPlatform()
}
```
该配置的作用是让`test`任务使用`Junit`测试工具。
#### 官方说明文档
除本示例项目中默认的配置外,Gradle还有很多配置项,如:项目构建脚本配置`bulidscript`、子项目管理`subprojects`,发布管理`publishing`等等,可以查看官方文档进行详细了解:[Gradle DSL Version 8.0.2](https://docs.gradle.org/current/dsl/)
<div class="article-ads"></div>
## 手动创建Gradle项目
理论上,你的项目根目录下有`build.gradle`文件,就会被`IDEA`识别为Gradle项目,所以下面来尝试只用配置文件,其他的让`IDEA`来帮助我们完成,从而创建一个Gradle-Springboot项目。
### 准备项目文件
1. 创建空文件夹,命名为`gradle-boot-my`。
2. 找到前面通过IDEA生成的项目中的配置文件,将其拷贝到`gradle-boot-my`文件夹下,如下图:

3. 为了表示尊敬,我们修改`setting.gradle`文件中的项目名,如下:
```groovy
rootProject.name = 'gradle-boot-my'
```
4. 使用IDEA打开该文件夹,并修改IDEA中的gradle配置为已安装的gradle文件夹(前面有讲到)。
5. 刷新项目,可以看到Gradle的相关操作能够正常显示,如下图:

> 经过以上几步,其实你已经有了一个Gradle的空项目,只不过现在还没有Springboot的相关文件:启动类、配置文件等,我们可以自己创建这些文件夹与文件,**注意文件夹结构要是正确的,可参考前面IDEA帮助创建的文件夹结构**。
6. 创建Springboot文件结构,如果使用IDEA创建,会有提示创建哪些基础文件夹;

7. 创建启动类和配置文件,并启动测试,如下图

启动类代码:
```java
package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* 自定义启动类
*
* @author dingdangdog
* @date 2023/3/24 14:35
*/
@SpringBootApplication
public class BootApplication {
public static void main(String[] args) {
SpringApplication.run(BootApplication.class, args);
}
}
```
经过上述简单的几步,就完成了一个简单springboot项目从无到有的创建过程。使用kotlin配置gradle的方式就不演示了,步骤是一样的,读者可以自行测试,就当课后练习了吧。😁
## 拓展
出了以上通过IDEA搭建Gradle项目外,Gradle自身也支持初始化空项目,官方有一些示例教程,可以选择阅读测试:[Try Gradle](https://docs.gradle.org/current/userguide/getting_started.html#try_gradle)
## 总结
上面通过两种方式(`Spring Initializr`、`手动创建`)搭建了Gradle-Springboot项目,当然也是不得不说`IDEA`功不可没。
通过本文,你应该学到了一下知识:
1. Gradle项目配置的基本理解。
2. Gradle-Springboot项目搭建的基本方法。
## 赞助请求V3
**建站因为热爱,生活需要Money,请屏幕前的大佬动动您发财的小手,点击一次以示鼓励,祝您生活愉快!**
<!-- 文章内嵌广告位 -->
<div class="article-ads"></div>
> PS:就目前的访问量,即便每个访客都点一次广告,收入也不足以支付运营成本。`如果看不到广告,可能是网络原因或被拦截了,那就算了吧。再次祝您生活愉快~~`END
评论
登录后查看和发表评论
前往登录