Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SpringBoot项目打war包流程

SpringBoot项目打war包流程

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

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

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

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

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

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

3、pom文件添加如些依赖

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
运行
AI代码解释
复制
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
运行
AI代码解释
复制
java 代码解读复制代码public class ServletInitializer extends SpringBootServletInitializer {

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

5、打包

参考链接:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SpringBoot Jar包改造为War包
对于默写特殊的业务场景,我们需要把已有的jar包分为改造为war包进行部署,对jar包的整改不会花费太多的工作量,现在讲改造过程梳理如下:
Freedom123
2024/03/29
2510
spingboot打war包的操作方式
spingboot打包部署时默认是jar包,其内置了tomcat服务器,打包项目时如果未做配置,默认使用的就是内置的tomcat,有时候考虑到项目需要集群部署或者进行优化时,就需要打成war包然后部署到外部的Tomcat服务器中,本文主要讲解springboot中如何进行打war包的操作
在水一方
2022/06/14
8880
利用IDEA将SpringBoot的项目打包成war文件
摘要总结:本文介绍了如何利用IDEA将SpringBoot的项目打包成war文件,包括修改pom.xml文件、修改SpringBoot中的启动文件以及最重要的打包步骤。注意要将spring-boot-starter-tomcat中的scope改为provided,否则会报错。
林老师带你学编程
2018/01/04
1.5K0
SpringBoot打可执行war包
1. 主程序类: @SpringBootApplication public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class);
布禾
2020/10/29
8810
Springboot的项目如何打成war包
1、在SpringBoot中默认支持Tomcat容器,所以当一个SpringBoot项目打包生成*.jar文件,并且直接执行的时候就会自动启动内部的Tomcat容器。除了此种模式之外,也可以将Web项目打包为*.war文件,采用部署的形式通过Tomcat进行发布处理,这种方式和传统模式比较类似,打成war包丢到tomcat里面进行运行。
别先生
2020/10/30
2.4K0
Springboot的项目如何打成war包
halo用tomcat打war包并发布【教程】
注:在看本篇的前提,需要查看自己的服务器是否安装了jdk8.x,tomcat8.x,mavem3.x,mysql5.x+ 执行 java -version 查看自己的jdk是否安装 安装完成之后还需要设置环境变量 首先打开pom.xml,然后找出项目的gav,项目默认是用jar打包的,所以
简单的程序员
2020/04/18
1.3K0
Linux服务器tomcat部署war包「建议收藏」
一、web项目处理 1、本地pom.xml文件改造 去除springboot自带的tomcat(有两种方式),并且依赖servlet-api;
全栈程序员站长
2022/09/06
5.1K0
SpringBoot2.x打包成war
  b.移除spring-boot-starter-web中嵌入式tomcat插件
用户7353950
2022/05/10
6530
SpringBoot2.x打包成war
springboot02、打war包
由于 Spring Boot 内置了 Tomcat ,所以我们在打包时需要排除内置的 Tomcat ,这样可以避免内置 Tomcat 和 war 包部署运行的 Tomcat 产生冲突。在 pom.xml 中添加如下依赖即可:
红目香薰
2022/11/30
7040
springboot02、打war包
springboot发布war包
版权声明:本文为博主原创文章,未经博主允许不得转载。 1.maven <packaging>war</packaging> <!-- 部署时不需要tomcat --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope>
DencyCheng
2018/11/05
1.7K0
SpringBoot打成war包在tomcat或wildfly下运行
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
程序新视界
2019/11/15
2.1K0
Spring Boot 2 实战:以 War 包的形式部署
Spring Boot 提供了内置的 tomcat、undertow、jetty 三种 Servlet Web 容器。让我们开箱即用,可以迅速以 JAR 启动一个 Web 应用。但是在某些场景中我们可能还需要将我们的 Spring Boot 容器以 War 的形式进行传统的部署。这时我们就需要通过借助于 SpringBootServletInitializer 来实现。
码农小胖哥
2019/12/09
1.3K0
SpringBoot配置成war包运行
最近两个项目都是用Springboot写后端接口,我们在创建springboot项目时,会选择运行包是jar还是war,当我们选择jar时,运行启动没问题,但是打成war包,就要配置很麻烦,但是修改成war后,发现运行启动不行了。期间公司组织了一次springboot 培训,恰巧培训中提到创建Springboot+JSP做一个web项目,而所需要依赖于war包运行。正巧也是符合我现在后端接口项目的运行方式,不想用jar!!!
麦克劳林
2018/10/10
1.7K0
spring-boot1.5开发的war包如何部署到tomcat
spring-boot在给我们带来便利的同时也带来了一些部署上的麻烦,这是因为spring-boot是为微服务为导向的,所以spring-boot项目更多是打包成jar包,然后使用内嵌的tomcat插件运行该jar包,但是有时我们需要将spring-boot项目打包成war包,然后和其他项目一起部署到外部的tomcat上,如何实现呢,spring-boot官网给出了步骤,下面为详细步骤:
johnhuster的分享
2022/03/28
1.2K0
springboot 打包成war 部署到tomcat容器
第一步: 修改pom.xml 增加 <packaging>war</packaging>
斯文的程序
2019/11/07
1.4K0
Spring Boot打包war jar 部署tomcat
4.项目目前了集成了 Spring Boot + Spring data jpa +Redis集群+dubbo+freemarker 持续更新...
大道七哥
2019/09/10
1.5K0
重学SpringBoot系列之嵌入式容器的配置与应用
在Spring Boot项目中,可以支持Tomcat、Jetty、Undertow的Web应用服务容器。当我们添加了spring-boot-starter-web依赖后,默认会使用Tomcat作为嵌入式Web容器,不需要我们单独部署,将web应用打成jar包即可运行。
大忽悠爱学习
2021/12/07
1.8K0
重学SpringBoot系列之嵌入式容器的配置与应用
SpringBoot应用部署于外置Tomcat容器
来源:https://my.oschina.net/hansonwang99/blog/1824245
程序猿DD
2018/07/31
9670
SpringBoot应用部署于外置Tomcat容器
Spring Boot 发布 jar 包转为 war 包秘籍。
Spring Boot是支持发布jar包和war的,但它推荐的是使用jar形式发布。使用jar包比较方便,但如果是频繁修改更新的项目,需要打补丁包,那这么大的jar包上传都是问题。所以,jar包不一定合适适用所有的场景,如war包更合适,你可以尝试转为传统的war包,这样打补丁包可能更方便。 如何配置打war包呢? 以下配置以Maven为说明讲解,Gradle的查看类似配置。 1、修改Spring Boot启动类 启动类继承 SpringBootServletInitializer类,并覆盖 configu
Java技术栈
2018/06/04
1.5K0
【SpringBoot】20、SpringBoot中打war包需要注意「建议收藏」
最近在做一个项目,遇到了项目打成 war 包的一个问题,项目创建时选择的时 jar 包方式,后因项目部署要求,需要打成 war 包部署,遇到很多坑,在此做一下记录
全栈程序员站长
2022/08/25
1.2K0
【SpringBoot】20、SpringBoot中打war包需要注意「建议收藏」
相关推荐
SpringBoot Jar包改造为War包
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验