SpringBoot War打包部署

devtools/2024/9/24 5:25:02/

修改打包方式

<packaging>war</packaging>

修改 Servlet 容器的 scope

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency>

由于我们会使用外部的 Tomcat,所以需要主动把嵌入式容器 spring-boot-starter-tomcat 依赖的 scope 声明为 provided,表示该依赖只用于编译、测试。

新增一个继承类

java">package org.example.springbootwar;import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;public class ServletInitializer extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(SpringBootWarApplication.class);}
}

我们需要继承 SpringBootServletInitializer 类并覆写其 configure(SpringApplicationBuilder application) 方法,通过该方法指定 @SpringBootApplication 所在类。

修改打包名称

 <build>      <finalName>spring-boot-war</finalName></build>

使用 mvn 打包

# 先执行 clean,再执行 package,并且跳过测试用例的执行
mvn clean package -Dmaven.test.skip=true

部署到 tomcat

将打包好的 target/spring-boot-war.war包部署到 tomcat 的 webapp目录下。

访问对应springboot项目

// spring-boot-war 是 webapp目录下的包名,作为项目的根目录
curl 'http://120.0.0.1/spring-boot-war/test'

注意:

如果部署成功,但Spring Boot 没有启动日志,并且访问 404,则可能有 tomcat 的版本和 spring-boot的版本不一致。

需要查看 spring-boot-starter-web 对应的 内置tomcat 的版本。可以通过一下几个方法查看:

  • 查看依赖

    在 idea 中查看对应的 版本

    在这里插入图片描述

  • 到 mvnrepository 仓库中查看

    https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-web/3.2.5
    

    在这里插入图片描述

Github

完整的代码:https://github.com/chenguowei/project_java/blob/main/spring-boot-examples-demo/spring-boot-war/README.md


http://www.ppmy.cn/devtools/25017.html

相关文章

目标检测与追踪AI算法模型及边缘计算智能分析网关V4的算法应用

目标检测与追踪是计算机视觉领域中的一个重要任务&#xff0c;主要用于识别图像或视频中的目标&#xff0c;并跟踪它们的运动轨迹。针对这一任务&#xff0c;有许多先进的AI算法模型&#xff0c;例如&#xff1a; YOLO&#xff08;You Only Look Once&#xff09;&#xff1a;…

如何解决升级IntelliJ IDEA 2024后 打开项目就自动闪退关闭问题的终极指南

title: “&#x1f42f; 解决升级IntelliJ IDEA 2024后项目自动关闭的终极指南” date: 2024-04-23 author: 猫头虎 profile: CSDN 文章目录 title: "&#x1f42f; 解决升级IntelliJ IDEA 2024后项目自动关闭的终极指南" date: 2024-04-23 author: 猫头虎 profile: …

【Unity基础】TextMeshPro组件学习过程记录

目录 1.TextMeshPro组件渲染创建文本RTL Editor字体Font Asset字体加粗&#xff0c;下划线等字体大小控制字体颜色控制字体渐变控制字符间隔、单词间隔、行间距、段落间距控制WrappingUV映射控制代码 2.TextMeshPro组件AssetFace InfoGeneration Setting 3.使用Dynamic SDF Sys…

Java 集合中获取数据的前驱和后继元素

目录 1. NavigableSet 和 NavigableMap 2. ListIterator 3. ConcurrentSkipListSet 和 ConcurrentSkipListMap 4.示列 使用场景 使用一致性hash时&#xff0c;如何找到一个hash值对应的临近节点&#xff0c;可以使用集合中获取数据的前驱和后继元素实现。 1. NavigableSet…

C/C++程序设计实验报告综合作业 | 小小计算器

本文整理自博主本科大一《C/C程序设计》专业课的课内实验报告&#xff0c;适合C语言初学者们学习、练习。 编译器&#xff1a;gcc 10.3.0 ---- 注&#xff1a; 1.虽然课程名为C程序设计&#xff0c;但实际上当时校内该课的内容大部分其实都是C语言&#xff0c;C的元素最多可能只…

Windows下搭建Flutter开发环境

IDE:VS code Flutter官网:Flutter: 为所有屏幕创造精彩 - Flutter 中文开发者网站 - Flutter 下载&安装 下载Flutter SDK,如图,建议自行下载安装: SDK还是挺大的,近1G,使用迅雷下载会快不少。 下载完成,解压缩到指定目录即可! 设置Local SDK,按下面步骤操作即…

基于LM Studio + LLaMA3 建立本地化的ChatGPT

4月19日&#xff0c;Facebook母公司Meta重磅推出了Llama3。即便大家现在对于大厂和巨头频繁迭代AI模型的行为已经见怪不怪&#xff0c;Meta的Llama3仍旧显得与众不同&#xff0c;因为这是迄今最强大的开源AI模型。LLaMA模型通常采用了类似于GPT&#xff08;由OpenAI开发&#x…

tableau基础学习——添加标靶图、甘特图、瀑布图

标靶图 添加参考线 添加参考分布 甘特图 创建新的字段 如设置延迟天数****计划交货日期-实际交货日期 为正代表提前交货&#xff0c;负则代表延迟交货 步骤&#xff1a;创建——计算新字段 把延迟天数放在颜色、大小里面就可以 瀑布图 两个表按照地区连接 先做个条形图&…