Spring Boot应用部署 - JAR包部署

news/2025/3/15 16:33:12/

Spring Boot应用部署采用打包成JAR文件的方式,旨在利用其内置的嵌入式Tomcat或其他Servlet容器,简化传统Web应用部署流程。以下是详细的步骤和说明:

1. 使用Maven或Gradle进行打包

Maven

在Spring Boot项目中,确保pom.xml文件已经包含了Spring Boot Maven插件。如果未添加,需添加如下配置:

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

然后在命令行或IDE中执行打包命令:

mvn clean package

这将清理旧的构建产物,编译项目,执行测试(如果有),并最终打包成一个可执行的JAR文件。生成的JAR通常位于target目录下,文件名格式为your-project-name-<version>.jar

这将完成同样的清理、编译、测试和打包过程,生成的JAR文件同样位于build/libs目录下,文件名类似your-project-name-<version>.jar

2. 打包类型

Spring Boot应用默认被打包为“fat JAR”或“über JAR”,这种类型的JAR不仅包含了项目的字节码,还包含了所有依赖库以及嵌入式Servlet容器(如Tomcat)。这意味着一个单一的JAR文件就包含了应用运行所需的所有组件,无需在目标环境中预先安装或配置Servlet容器。

3. 部署JAR文件

本地部署

要运行打包好的JAR文件,只需在命令行中使用java -jar命令:

java -jar target/your-project-name-<version>.jar
# 或者对于Gradle项目
java -jar build/libs/your-project-name-<version>.jar

根据需要,可以指定各种运行参数、环境变量或配置文件位置。例如:

java -Dserver.port=8081 -jar your-project-name.jar --spring.config.location=file:/path/to/application.properties
远程服务器部署

将生成的JAR文件上传到目标服务器,通常放置在合适的应用部署目录下。然后通过SSH登录服务器,执行与本地相同的方式启动应用:

ssh user@remote-server
cd /path/to/deployment/directory
java -jar your-project-name.jar

确保服务器上已安装了兼容的Java运行环境(JRE或JDK),且版本与项目构建时使用的Java版本相符。


http://www.ppmy.cn/news/1443702.html

相关文章

python打印金字塔

在Python中&#xff0c;你可以使用嵌套的循环来打印一个金字塔。以下是一个基本的例子&#xff0c;它打印了一个由星号(*)组成的金字塔&#xff1a; python def print_pyramid(n): for i in range(n): print(’ ’ * (n - i - 1) ‘*’ * (2 * i 1)) 测试函数 print_pyram…

前端高并发的出现场景及解决方法——技能提升——p-limit的使用

最近在写后台管理系统的时候&#xff0c;遇到一个场景&#xff0c;就是打印的页面需要根据传入的多个id&#xff0c;分别去请求详情接口。 比如id有10个&#xff0c;则需要调用10次详情接口获取到数据&#xff0c;最后对所有的数据进行整合后页面渲染。 相信大家或多或少都遇到…

从零学算法1017

1017. 负二进制转换 给你一个整数 n &#xff0c;以二进制字符串的形式返回该整数的 负二进制&#xff08;base -2&#xff09;表示。 注意&#xff0c;除非字符串就是 “0”&#xff0c;否则返回的字符串中不能含有前导零。 示例 1&#xff1a; 输入&#xff1a;n 2 输出&…

Linux中的高级IO函数(二)readv writev sendfile mmap splice tee

Linux提供了很多高级的I/O函数。它们并不像Linux基础I/O函数&#xff08;比如open和read&#xff09;那么常用&#xff08;编写内核模块时一般要实现这些I/O函数&#xff09;&#xff0c;但在特定的条件下却表现出优秀的性能。这些函数大致分为三类&#xff1a; 用于创建文件描…

提高分布式软件开发团队协作效率的策略和工具推荐

策略1:采用敏捷开发方法 步骤: 研究敏捷方法: 研究敏捷开发方法,如Scrum或Kanban,了解其原则和实践。培训团队: 为团队成员提供敏捷方法论和最佳实践的培训。选择工具: 选择适合敏捷开发的工具,如Jira、Trello或Asana。实施敏捷仪式: 定期举行站立会议、迭代评审和迭…

基于springboot实现在线课程管理系统项目【项目源码+论文说明】计算机毕业设计

基于springboot实现在线课程管理系统演示 摘要 随着信息技术在管理上越来越深入而广泛的应用&#xff0c;管理信息系统的实施在技术上已逐步成熟。本文介绍了在线课程管理系统的开发全过程。通过分析在线课程管理系统管理的不足&#xff0c;创建了一个计算机管理在线课程管理系…

iOS 模拟请求 (本地数据调试)

简介 在iOS 的日常开发中经常会遇到一下情况&#xff1a;APP代码已编写完成&#xff0c;但后台的接口还无法使用&#xff0c;这时 APP开发就可能陷入停滞。此时iOS 模拟请求就派上用场了&#xff0c;使用模拟请求来调试代码&#xff0c;如果调试都通过了&#xff0c;等后台接口…

IT大陆之:指定用户登入docker

这天&#xff0c;S老交给小k一个特殊的任务&#xff1a;以“nav”这个神秘身份&#xff0c;深入“my_dk”国度&#xff0c;探索其中的奥秘。小k心怀激动与忐忑&#xff0c;站在控制台前&#xff0c;深吸一口气&#xff0c;然后缓缓念出那串充满魔力的咒语&#xff1a;“sudo do…