当前位置: 首页 > news >正文

Gradle(三)创建一个 SpringBoot 项目

目录

    • 一、IDEA 创建项目
    • 二、配置 & 依赖
      • 2.1 build.gradle 配置
      • 2.2 gradle-wrapper.properties(版本管理)
    • 三、编写源文件
    • 四、运行 & 测试
      • 4.1 启动程序
      • 4.2 测试

Gradle 是一个强大的构建自动化工具,它使用 Groovy 或 Kotlin 作为 DSL(领域特定语言)来定义构建脚本,具有高度的灵活性和可扩展性。使用 Gradle 来创建 Spring Boot 项目,能够充分利用 Gradle 的依赖管理、任务执行等功能,使项目的构建和管理更加高效。

一、IDEA 创建项目

1、打开 IDEA,菜单选择 File -> New -> Project...

在这里插入图片描述

2、选择 Java,输入项目名称,设置 GradleSDK 版本。设置完毕之后,点击 Create 即可完成项目创建。

在这里插入图片描述

3、项目创建好之后需要先 Ctrl + Alt + S 打开 Settings 界面,配置 Gradle 为本地路径。

(如果没有配置 Gradle,IDEA 会自动进行下载,如果看到需要手动取消掉。)

在这里插入图片描述

4、项目创建好之后,文件目录结构如下所示:

在这里插入图片描述

至此我们就完成项目创建了,IDEA 帮我们自动创建了两个文件:build.gradlesettings.gradle;接下来还需要进行一些配置。


二、配置 & 依赖

2.1 build.gradle 配置

打开 build.gradle 文件,自动生成的内容为:

plugins {id 'java'
}group = 'org.example'
version = '1.0-SNAPSHOT'repositories {mavenCentral()
}dependencies {testImplementation platform('org.junit:junit-bom:5.10.0')testImplementation 'org.junit.jupiter:junit-jupiter'
}test {useJUnitPlatform()
}

需要添加一些内容,添加后 build.gradle 文件内容如下:

// gradle 自身需求资源库,放头部
buildscript {repositories {maven { url 'https://maven.aliyun.com/repository/public' } // 加载其他 Maven 仓库mavenCentral()}dependencies {classpath( 'org.springframework.boot:spring-boot-gradle-plugin:2.1.1.RELEASE' ) // 加载插件,用到里面的函数方法}
}// 插件
//plugins {
//    id 'java'
//}apply plugin: 'java'
apply plugin: 'idea'
// 使用 spring boot 框架
apply plugin: 'org.springframework.boot'
// 使用 spring boot 的自动依赖管理
apply plugin: 'io.spring.dependency-management'group = 'org.example'
version = '1.0-SNAPSHOT'// 执行项目中所使用的资源仓库
repositories {maven { url 'https://maven.aliyun.com/repository/public' }mavenCentral()
}// 项目中需要的依赖
dependencies {// 添加 jupiter 测试的依赖testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'// 添加 jupiter 测试的依赖testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'// 添加 spring-boot-starter-web 的依赖,必须排除 security(根据自身需求)implementation('org.springframework.boot:spring-boot-starter-web') {exclude group: 'org.springframework.security', module: 'spring-security-config'}// 添加 spring-boot-starter-test 该依赖对于编译测试是必须的,默认包含编译产品依赖和编译时依赖testImplementation 'org.springframework.boot:spring-boot-starter-test'// 添加 junit 测试的依赖testImplementation group: 'junit', name: 'junit', version: '4.11'// 添加 lombokannotationProcessor 'org.projectlombok:lombok:1.18.22' // annotationProcessor 代表 main 下代码的注解执行器testAnnotationProcessor 'org.projectlombok:lombok:1.18.22' // testAnnotationProcessor 代表 test 下代码的注解执行器compileOnly group: 'org.projectlombok', name: 'lombok', version: '1.18.22' // compileOnly 代表编译时使用的lombok
}// 第二种排除依赖方法
//configurations {
//    compile.exclude group: 'org.codehaus.jackson', module:'jackson-mapper-asl' // 消除依赖
//}test {useJUnitPlatform()
}

保存文件,IDEA 会提示有依赖需要更新,点击即可自动下载:

在这里插入图片描述

2.2 gradle-wrapper.properties(版本管理)

若发现 gradle 版本问题,可以修改此文件,提升 gradle 版本;项目默认为:

#Tue Aug 05 20:35:01 CST 2025
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.1-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

修改后:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

更改 distributionUrl,将版本更换为 gradle-7.2-bin


三、编写源文件

1、项目初始化时,会自动建好 src/main/java 目录,目录下 org.example 包中会有一个 Main.java,这个我们用不到,可以删掉。

2、在 org.example 包下新建一个如下类:

SpringBootGradleApplication.java

package org.example;import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.core.env.Environment;import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.HashMap;
import java.util.Map;/*** Created by michael on 2020/04/28.*/
@Slf4j
@SpringBootApplication
public class SpringBootGradleApplication {private static final String SPRING_PROFILE_DEFAULT = "spring.profiles.default";/*** dev:开发、qa:测试、pre:预发、prod:生产;为空则默认读取“application.yml”*/private static final String PROFILE = "";private static void addDefaultProfile(SpringApplication app) {Map<String, Object> defProperties = new HashMap<>();defProperties.put(SPRING_PROFILE_DEFAULT, PROFILE);app.setDefaultProperties(defProperties);}private static String[] getActiveProfiles(Environment env) {String[] profiles = env.getActiveProfiles();return profiles.length == 0 ? env.getDefaultProfiles() : profiles;}public static void main(String[] args) {SpringApplication app = new SpringApplication(SpringBootGradleApplication.class);addDefaultProfile(app);Environment env = app.run(args).getEnvironment();String applicationName = env.getProperty("spring.application.name");String serverPort = env.getProperty("server.port");String configServerStatus = env.getProperty("spring.profiles.active");try {String hostAddress = InetAddress.getLocalHost().getHostAddress();log.info("\n---------------------------------------------------------------------------------\n\t" +"Application '{}' is running! Access URLs:\n\t" +"Local: \t\thttp://localhost:{}\n\t" +"External: \thttp://{}:{}\n---------------------------------------------------------------------------------",applicationName,serverPort,hostAddress, serverPort);log.info("\n---------------------------------------------------------------------------------\n\t" +"Config Server: \t{}\n---------------------------------------------------------------------------------",configServerStatus == null ? "Not found or not setup for this application" : configServerStatus);} catch (UnknownHostException e) {e.printStackTrace();}}
}

3、再在 org.example 包下创建一个 controller 目录,用来放 RESTful 接口。

4、在 org.example.controller 包下创建一个 Controller,代码如下:

package org.example.controller;import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** Created by michael on 2020/04/28.*/
@RestController
@RequestMapping("/hello")
public class HelloController {@GetMapping("/welcome")public String welcome() {return "Hello Word";}
}

5、在 resources 中,右键新建 application.yml 配置文件,文件内容如下:

server:port: 8088spring:application:name: springboot-gradle

四、运行 & 测试

4.1 启动程序

有三种启动方式:

  • 方式一:在控制台,执行 gradle bootrun 命令。
  • 方式二:在 IDEA 中,双击 Gradle 下的 bootRun 按钮。

在这里插入图片描述

  • 方式三:点击 SpringBootGradleApplication.java 中 main() 前的启动按钮。

在这里插入图片描述

4.2 测试

项目启动之后,我们可以看到控制台日志中成功打印出了我们在配置文件中的配置,如下所示:

在这里插入图片描述

在浏览器访问地址:http://localhost:8088/hello/welcome,就可以看到效果了:

在这里插入图片描述

整理完毕,完结撒花~ 🌻





参考地址:

1.IDEA+Gradle搭建Spring Boot项目,https://blog.csdn.net/qq_38288606/article/details/121031239

http://www.lryc.cn/news/619885.html

相关文章:

  • C++ 中构造函数参数对父对象的影响:父子控件管理机制解析
  • 【完整源码+数据集+部署教程】火柴实例分割系统源码和数据集:改进yolo11-rmt
  • 学习语言的一个阶段性总结
  • Linux操作系统应用编程——文件IO
  • Nginx的SSL通配符证书自动续期
  • 精准阻断内网渗透:联软科技终端接入方案如何“锁死”横向移动?
  • MySQL中的查询、索引与事务
  • MySQL三大存储引擎对比:InnoDB vs MyISAM vs MEMORY
  • RuoYi-Cloud 接入 Sentinel 的 3 种限流方式
  • Android 双屏异显技术全解析:从原理到实战的多屏交互方案
  • Ubuntu 20.04 虚拟机安装完整教程:从 VMware 到 VMware Tools
  • 基于.Net Framework4.5 Web API 引用Swagger
  • nginx高性能web服务器实验
  • INTERSPEECH 2025 | 数据堂诚邀您参加MLC-SLM挑战赛暨研讨会
  • JVM安全点轮询汇编函数解析
  • 【个人简单记录】PLT,GOT函数加载机制
  • 海康视觉平台VM创建项目
  • FxSound:为你的音频体验注入专业级享受
  • Android图片加载库Glide深度解析与实践指南
  • 4 种方法将联系人从 iPhone 传输到 realme
  • 用了Cursor AI之后,我的编程效率翻倍了?——一位程序员的真实体验分享
  • 小迪23年-32~40——java简单回顾
  • Dots.ocr:告别复杂多模块架构,1.7B参数单一模型统一处理所有OCR任务22
  • 直播预告|鸿蒙生态中的AI新玩法
  • 09--解密栈与队列:数据结构核心原理
  • 图像分割-动手学计算机视觉9
  • 算法提升-树上问题之(dfs序)
  • WPF的c1FlexGrid的动态列隐藏和动态列名设置
  • 《设计模式之禅》笔记摘录 - 15.观察者模式
  • WMware的安装以及Ubuntu22的安装