Gradle 创建Spring Boot项目

在 Spring Boot 项目中,Gradle 插件可以让你更方便地管理依赖、打包、运行和测试 Spring Boot 应用。以下是如何使用 Spring Boot Gradle 插件的详细指南:

1. 引入 Spring Boot 插件

build.gradle 中引入 Spring Boot 插件可以为项目提供各种便捷的功能。Spring Boot 插件发布在 Gradle 的插件门户,可以在 plugins 块中使用以下代码来应用它:

plugins {id 'org.springframework.boot' version '2.3.7.RELEASE'           // 维护 Spring Boot 版本号id 'io.spring.dependency-management' version '1.0.10.RELEASE'   // 提供依赖管理功能id 'java'                                                       // 引入 Java 插件
}

说明

  • org.springframework.boot 插件:负责打包 Spring Boot 应用,使项目可直接打包为可执行的 JAR 或 WAR 文件。
  • io.spring.dependency-management 插件:提供依赖管理,允许在引入 Spring Boot 相关依赖时省略版本号,并自动解决版本冲突。
  • java 插件:添加 Java 项目的基础支持。

2. 引入所需依赖

dependencies 块中引入所需的 Spring Boot 依赖:

dependencies {implementation 'org.springframework.boot:spring-boot-starter'            // Spring Boot 基础依赖implementation 'org.springframework.boot:spring-boot-starter-web'         // Web 应用的依赖testImplementation('org.springframework.boot:spring-boot-starter-test') { // 测试依赖exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'    // 排除 JUnit Vintage}
}

说明

  • spring-boot-starter:核心的 Spring Boot 启动器,提供基础的 Spring Boot 依赖和自动配置。
  • spring-boot-starter-web:用于构建 Web 应用的依赖,包含内嵌的 Tomcat、Spring MVC 等。
  • spring-boot-starter-test:包含测试所需的依赖,如 JUnit、Mockito 等。此处排除 junit-vintage-engine 以避免与 JUnit 5 的兼容问题。

3. 配置测试任务

配置 test 任务以使用 JUnit Platform:

test {useJUnitPlatform()
}

4. 使用 Gradle 命令运行和打包项目

4.1 运行项目

要运行当前的 Spring Boot 项目,可以在命令行中执行以下命令:

./gradlew bootRun

也可以在 IDEA 或其他支持 Gradle 的开发工具中直接使用“运行”按钮启动项目。

4.2 打包为可执行 JAR

如果需要将项目打包为可执行 JAR 文件,可以使用以下命令:

./gradlew bootJar

生成的 JAR 文件将位于 build/libs 目录下,带有必要的依赖和自动化配置,使其可以直接运行。例如:

java -jar build/libs/your-app-name.jar

5. Spring Cloud 项目

对于 Spring Cloud 项目,Spring Initializr 脚手架工具可以极大简化项目的创建。Spring Initializr 提供了 Spring Boot 和 Spring Cloud 的整合模板,便于快速生成云端应用。

可以使用 Spring Initializr 创建项目,选择依赖项后下载项目,解压并导入 IDE,即可按照与 Spring Boot 项目类似的方式使用。

Spring Boot Gradle 插件提供了便利的依赖管理和打包支持,使开发者可以更高效地管理 Spring Boot 应用的构建和部署。利用插件的 bootRunbootJar 命令,Spring Boot 应用可以轻松运行或打包,简化了开发和部署流程。

spring-boot-gradle-plugin 插件

是 Spring Boot 项目构建和依赖管理的核心插件。我们可以进一步通过 buildscript 块配置插件的源和版本,尤其是在国内的开发环境中,这种配置可以使用国内的 Maven 镜像来提升构建速度。

使用 buildscript 配置 Spring Boot Gradle 插件

在使用 Spring Boot Gradle 插件时,可以通过 buildscript 块手动配置插件的存储库和版本,这在插件版本与项目需求不完全匹配或者需要自定义配置时很有用。

buildscript {repositories {maven { url 'https://maven.aliyun.com/repository/public' } // 使用阿里云的 Maven 镜像}dependencies {classpath 'org.springframework.boot:spring-boot-gradle-plugin:2.4.1' // 指定 Spring Boot 插件版本}
}// 应用 Spring Boot 和依赖管理插件
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'

配置说明

  1. 插件存储库

    • 使用 maven { url 'https://maven.aliyun.com/repository/public' } 配置了阿里云的 Maven 镜像,以便更快地下载依赖。阿里云镜像是国内常用的开源库镜像,适合在国内访问速度较慢的情况。
  2. 插件依赖

    • dependencies 块中引入 spring-boot-gradle-plugin 插件并指定版本,如 2.4.1。这个版本号可以根据项目要求调整。
  3. 应用插件

    • 使用 apply plugin 语句将 org.springframework.boot 插件应用到项目中,用于管理 Spring Boot 的构建任务。
    • io.spring.dependency-management 插件用于简化依赖的版本管理。使用它可以省去手动指定依赖的版本号,插件会自动使用 Spring Boot 提供的版本。

运行和打包命令

  • 运行 Spring Boot 项目:直接执行以下命令启动应用程序。

    ./gradlew bootRun
    
  • 打包为可执行 JAR 文件:执行以下命令生成可运行的 JAR 文件。

    ./gradlew bootJar
    

生成的 JAR 文件可以使用 java -jar 命令直接运行,无需依赖额外的应用服务器。


通过以上方式配置 spring-boot-gradle-plugin 插件,不仅可以提升项目构建的速度,还可以简化 Spring Boot 应用的构建和运行流程。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/60022.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AUTOSAR CP Ethernet State Manager(EthSM)规范的主要功能以及工作原理导读

AUTOSAR Ethernet State Manager(以下简称EthSM)规范的主要功能 AUTOSAR Ethernet State Manager(以下简称EthSM)规范的主要功能包括: 通信控制 网络模式管理:为通信管理器(ComM)提…

第二十课 Vue组件中的data

Vue组件中的data Vue组件中的data是独立的&#xff0c;Vue官方不建议各单元互通数据&#xff0c;每个组件有各自的数据对象&#xff0c;类似于Vue示例中的data。 组件中的data对象 组件中的data必须是带有返回值的函数对象 基础示例 <div id"app"><tes…

速盾:游戏盾的功能和原理详解

速盾有一款专注于网络游戏安全的防护系统&#xff0c;它通过实时监测游戏网络流量和玩家行为&#xff0c;以及使用先进的算法和技术进行分析和识别&#xff0c;检测出各种外挂、作弊行为和恶意攻击&#xff0c;从而保障游戏的公平性和玩家的安全性。 速盾游戏盾的主要功能包括…

深度学习中的感受野:从基础概念到多层次特征提取

在深度学习&#xff0c;特别是计算机视觉任务中&#xff0c;感受野&#xff08;Receptive Field&#xff09;是一个至关重要的概念。它指的是在神经网络中某一层的神经元在输入图像上“看到”的区域大小。感受野的大小影响了网络能捕捉的特征层级&#xff0c;从而决定了它的特征…

VirtIO实现原理(1)

本文内容参考: VirtIO实现原理——PCI基础_virtio-pci-CSDN博客 QEMU源码全解析 —— virtio(3)_qemu virtio block bus-CSDN博客 特此致谢! 序言 本系列文章是笔者在看了网名为“享乐主”的VirtIO系列文章后决心要写的。这位博主的“VirtIO专栏”中博文的内容从技术层…

2024年双11激光投影仪哪个品牌最好?当贝新品震撼视觉的秘密武器

激光投影仪逐渐占据家庭娱乐生活的中心位置&#xff0c;以其超大屏优势与卓越的性能获得了众多消费者的青睐。双11购物狂欢节期间&#xff0c;正是入手一台高品质激光投影仪的好时机&#xff0c;各大厂商也纷纷推出了品牌新品&#xff0c;2024年双11激光投影仪怎么选&#xff1…

React的概念以及发展前景如何?

React是一个由Facebook开发的用于构建用户界面的的开源JavaScript库&#xff0c;它主要用于构建大型、动态的Web应用程序。React的主要特点是使用VirtualDOM&#xff08;虚拟DOM&#xff09;来优化性能&#xff0c;并使用声明式的编程方式来编写UI。 React的主要概念包括&#…

定位,堆叠,CSS精灵,过渡,光标(前端)

一.定位 1.作用 灵活改变盒子在网页中的位置 2.标签 position 3.属性值 &#xff08;1&#xff09;相对定位relative relative&#xff08;相对定位&#xff09;-----改变位置的参照物是原来的位置&#xff0c;挪动后原来的位置不托标&#xff0c;不被占用。 要配合top…

【C语言】位运算

我们在上学计算机的第一节课&#xff0c;就应该见过这些常见的运算符。然而&#xff0c;你可能有印象&#xff0c;但记不住众多操作符当中的位运算符&#xff0c;以及它们的作用和使用场景&#xff0c;我们的大脑会选择性地遗忘它认为没用的信息&#xff0c;存储下那些“有实际…

C#各版本汇总

C#版本.NET版本发布日期C# 1.0.NET Framework 1.02002-2-13C# 1.1.NET Framework 1.12003-4-24C# 2.0.NET Framework 2.02005-11-7.NET Framework 3.02007-11-6C# 3.0.NET Framework 3.52007-11-19C# 4.0.NET Framework 4.02010-4-12C# 5.0.NET Framework 4.52012-8-15C# 6.0.N…

量化交易系统开发-实时行情自动化交易-3.4.1.2.A股交易数据

19年创业做过一年的量化交易但没有成功&#xff0c;作为交易系统的开发人员积累了一些经验&#xff0c;最近想重新研究交易系统&#xff0c;一边整理一边写出来一些思考供大家参考&#xff0c;也希望跟做量化的朋友有更多的交流和合作。 接下来聊聊基于A股API获取交易数据。 …

2024-11-01 - 统一身份认证 - OpenLdap - 中间件 - 流雨声

摘要 2024-11-01 周五 杭州 暴雨 调查问卷: https://www.wjx.cn/vm/exIBFDM.aspx# 2024年转瞬即逝&#xff0c;可是生活还在继续&#xff0c;这里有一项关于人工智能和项目管理对于效能关系的调研问卷&#xff0c;AI 对工作的作用和影响。问卷不采集个人信息&#xff0c;在此…

【363】基于springboot的高校竞赛管理系统

摘 要 如今社会上各行各业&#xff0c;都喜欢用自己行业的专属软件工作&#xff0c;互联网发展到这个时候&#xff0c;人们已经发现离不开了互联网。新技术的产生&#xff0c;往往能解决一些老技术的弊端问题。因为传统高校竞赛管理系统信息管理难度大&#xff0c;容错率低&am…

Could not create task ‘:shared_preferences_android:generateDebugUnitTestConfig‘

flutter项目使用shared_preferences库的时候&#xff0c;打开flutter项目中的android项目运行&#xff0c;会出现如下错误信息&#xff1a; A build operation failed. Could not create task :shared_preferences_android:generateDebugUnitTestConfig. Could not create…

qt QTextFrame详解

1. 概述 QTextFrame是Qt框架中用于表示文本框架的类。它允许在QTextDocument中创建和管理具有特定边界和格式的文本区域。QTextFrame可以包含文本、图像、表格或其他QTextFrame&#xff0c;从而提供丰富的文本布局和排版功能。QTextFrame通常与QTextCursor结合使用&#xff0c…

【JWT】Asp.Net Core中JWT刷新Token解决方案

Asp.Net Core中JWT刷新Token解决方案 前言方案一:当我们操作某个需要token作为请求头的接口时,返回的数据错误error.response.status === 401,说明我们的token已经过期了。方案二:实现用户无感知的刷新token值,我们希望当响应返回的数据是401身份过期时,响应阻拦器自动帮我…

linux,1.NFS和autofs,2.podman容器,3.http服务和虚拟web主机,4.内网DNS服务搭建

1.NFS和autofs 一.NFS服务器之间共享文件夹(服务端配置共享文件和权限,客户端进行挂载) 服务端1.安装包 nfs-utils2.服务器端,编写配置文件 /etc/exports/共享的文件路径 *(rw) 人(权限)允许所有客户端进行读写访问3.重启服务,并设置开机自启动客户端1.安装包 nfs-ut2.挂载mo…

如何在Microsoft Edge中删除已保存的网站密码

目录 前言1. 如何进入Edge的密码管理界面1.1 打开Microsoft Edge的设置菜单1.2 进入个人资料设置1.3 进入密码管理 2. 在Edge中查看和删除已保存的密码2.1 查找需要删除的密码2.2 检查密码安全性2.3 删除特定网站的密码 3. 提升Edge密码管理的安全性3.1 启用Edge的多重身份验证…

[ Linux 命令基础 4 ] Linux 命令详解-文本处理命令

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

Linux 实验:日志的备份与恢复 xfs文件系统

添加一个新的硬盘&#xff0c;创建硬盘分区sdc1 设置文件系统格式xfs&#xff0c;提示安装xfsprogs&#xff0c;如果安装失败&#xff0c;在后缀加上--fix-missing直到安装完成为止 mkdir创建空目录data&#xff0c;将sdc1挂载到data&#xff0c;data是根目录下新建的目录&…