SpringBoot War打包部署

修改打包方式

<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,表示该依赖只用于编译、测试。

新增一个继承类

package org.example.springbootwar;

import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected 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

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值