Spring Boot项目如何打成war包部署呢?

戚薇 SpringBoot 发布时间:2022-11-19 07:05:56 阅读数:1723 1
下文笔者讲述SpringBoot项目打成war包的方法分享,如下所示
笔者先简述一下war及SpringBoot的相关概念

war包的介绍

war包由sun公司提出的一种web应用程序格式,她其实是一个压缩包
   里面包含lib,class,resource,config(web.xml)等信息

war是一个可以直接运行的web模块
   在网站程序的打包中,我们经常将其打成war包
   然后放入到tomcat中运行
例:
   我们将生成的war包,放入到tomcat的webapp目录下,tomcat会自动解压war包,然后对外提供服务 

SpringBoot简介

 我们都知道springboot默认会打成一个jar包,并且里面内嵌了tomcat服务器
 那么如何将springboot打成war包,并且放于到tomcat中运行呢

注意事项:
   如果使用了Spring的WebFlux功能
    则不支持 war 包部署

生成war包的方式

1. 修改 pom.xml 中的打包方式
<packaging>war</packaging>

2. 调整依赖
<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>
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-tomcat</artifactId>
   <!-- 该包只在编译和测试的时候使用 -->
    <scope>provided</scope>
</dependency>

3. 继承 SpringBootServletInitializer
@SpringBootApplication
public class AppQuickStart extends SpringBootServletInitializer {

    private static Logger logger = LoggerFactory.getLogger(AppQuickStart.class);

    public static void main(String[] args) {
        System.out.println(Thread.currentThread().getName());
        logger.info("app begin to start...");
        SpringApplication.run(AppQuickStart.class, args);
        logger.info("app start success...");
    }
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(AppQuickStart.class);
    }
}

4. 一些其他注意点
下面是 build 的配置,主要是设置了应用的名称,还用就是加了maven-war-plugin这个插件,不然会报找不到web.xml这个错误
<build>
     <finalName>appName</finalName>
    <!-- 省略其他配置 -->
    <plugins>
        <plugin>
            <configuration>
                <excludeDevtools>true</excludeDevtools>
            </configuration>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
            <executions>
                <execution>
                    <goals>
                        <goal>repackage</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.4</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>
采用以上方式后,即可使用mvn clean install命令进行打包安装
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringBoot/202207/3969.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者