SpringBoot项目打war包流程

程序浅谈 后端 最近

SpringBoot项目打war包流程

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

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

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

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

代码解读
复制代码
<groupId>com.example</groupId> <artifactId>application</artifactId> <version>0.0.1-SNAPSHOT</version> <!--默认为jar方式--> <!--<packaging>jar</packaging>--> <!--改为war方式--> <packaging>war</packaging>

2、排除springboot内置的tomcat干扰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。xml

代码解读
复制代码
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>

3、pom文件添加如些依赖xml

代码解读
复制代码
<!--添加servlet-api的依赖,用来打war包 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency>

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

4、改造启动类

1.方式一,启动类继承SpringBootServletInitializer实现configure: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:java

代码解读
复制代码
public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { //此处的Application.class为带有@SpringBootApplication注解的启动类 return builder.sources(Application.class); } }

5、打包

SpringBoot项目打war包流程

参考链接: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

转载来源:https://juejin.cn/post/6900169352381743111

Apipost 私有化火热进行中

评论