如何把Spring Boot打包成war

Posted 一颗小蚕豆 期待发芽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何把Spring Boot打包成war相关的知识,希望对你有一定的参考价值。

Spring Boot 默认打包为jar,受公司发布系统限制,不允许上传jar包,需要转为war和zip包,因此在使用Spring Boot时需要转为war。

实现方式:

1、需要App类继承SpringBootServletInitializer,并重写“protected SpringApplicationBuilder configure(SpringApplicationBuilder builder)” 方法。

Starter.java 文件:

 

@SpringBootApplication

 

@ComponentScan("com.xxx.tour.settlement")

 

public class Starter extends SpringBootServletInitializer {

 

 

    public static void main(String[] args) throws Exception {

 

        SpringApplication.run(Starter.class, args);

 

 

        System.setProperty("java.awt.headless", "false");

 

        Desktop.getDesktop().browse(new URI("http://127.0.0.1:8080"));

 

    }

 

 

    @Override

 

    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {

 

 

        return builder.sources(Starter.class);

 

    }

 

 

}

 

2、修改Site的pom文件

<packaging>war</packaging>

 

3、添加web.xml 文件

如果出现web.xml is missing and <failOnMissingWebXml> is set to true 异常,需要添加web.xml 文件。

Spring Boot  默认是可以不需要web.xml 的,公司框架要求需要web.xml 文件,会读取该文件下相关配置信息。

此问题的解决办法:

1. 在Site中找到 Deployment Descriptor 右键。

2. 选择Generate Deployment Descriptor Stub

这样就能生成src/main/webapp/WEB_INF/web.xml文件了。

以上是关于如何把Spring Boot打包成war的主要内容,如果未能解决你的问题,请参考以下文章

spring boot项目打包成war并在tomcat上运行的步骤

Spring Boot项目打包成war包

spring boot6.idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到

spring boot 在STS里将项目打包成war

spring boot 在STS里将项目打包成war

在IDEA中如何把Gradle下的Spring boot项目打包并部署到服务器