前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >SpringBoot项目打war包流程

SpringBoot项目打war包流程

作者头像
科技新语
发布2025-01-21 10:00:02
发布2025-01-21 10:00:02
8500
代码可运行
举报
运行总次数:0
代码可运行

目前,前后端分离的架构已成主流,因此使用springboot构建应用是非常快速的,项目发布到服务器上的时候,只需要打成一个jar包,然后通过命令 : java -jar jar包名称即可启动服务了;

但在有些场景下,比如部署到外部的服务器的时候,客户方指定要以tomcat的形式启动服务的时候,即需要由服务提供方提供一个war包的时候,该怎么办呢?

一开始没有查找资料,自己差点准备使用传统的ssm框架改造服务的,后来思考和参考相关资料后,发现只需要挤出简单的配置和改造就可以做到,下面是记载将springboot项目改造打包成war的流程,算是一个简单的参考:

1、将pom中打包的配置从jar改成war

代码语言:javascript
代码运行次数:0
复制
xml 代码解读复制代码<groupId>com.example</groupId>
<artifactId>application</artifactId>
<version>0.0.1-SNAPSHOT</version>
<!--默认为jar方式-->
<!--<packaging>jar</packaging>-->
<!--改为war方式-->
<packaging>war</packaging>

2、排除springboot内置的tomcat干扰

代码语言:javascript
代码运行次数:0
复制
xml 代码解读复制代码 <!--最终打成war包,排除内置的tomcat-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
    <exclusions>
        <exclusion>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
        </exclusion>
    </exclusions>
</dependency>

有人说也可以添加一个tomcat的依赖,这种方式也许是可以的,但是我没有尝试,大多数推荐的还是上面一种,即排除掉内置的tomcat。

代码语言:javascript
代码运行次数:0
复制
xml 代码解读复制代码<dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-tomcat</artifactId>
      <scope>provided</scope>
</dependency>

3、pom文件添加如些依赖

代码语言:javascript
代码运行次数:0
复制
xml 代码解读复制代码<!--添加servlet-api的依赖,用来打war包  -->
  <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <scope>provided</scope>
  </dependency>

这个依赖主要是用于在和jsp进行整合的使用,可酌情添加。

4、改造启动类

1.方式一,启动类继承SpringBootServletInitializer实现configure:

代码语言:javascript
代码运行次数:0
复制
java 代码解读复制代码@SpringBootApplication
public class Application extends SpringBootServletInitializer {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(Application.class);
    }
}

2.方式二,新增加一个类继承SpringBootServletInitializer实现configure:

代码语言:javascript
代码运行次数:0
复制
java 代码解读复制代码public class ServletInitializer extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        //此处的Application.class为带有@SpringBootApplication注解的启动类
        return builder.sources(Application.class);
    }
}

5、打包

参考链接:

代码语言:javascript
代码运行次数:0
复制
bash 代码解读复制代码https://blog.csdn.net/qq_33512843/article/details/80951741  
https://blog.csdn.net/zhangcongyi420/article/details/100065407?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-1.control
https://blog.csdn.net/pengweismile/article/details/95897988

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、将pom中打包的配置从jar改成war
  • 2、排除springboot内置的tomcat干扰
  • 3、pom文件添加如些依赖
  • 4、改造启动类
  • 5、打包
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档