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

转自:

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

下文笔者讲述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 中的打包方式
war

2. 调整依赖

       org.springframework.boot
       spring-boot-starter-web
       
            
             org.springframework.boot
             spring-boot-starter-tomcat
         
    


   org.springframework.boot
   spring-boot-starter-tomcat
   
    provided


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这个错误

     appName
    
    
        
            
                true
            
            org.springframework.boot
            spring-boot-maven-plugin
            
                
                    
                        repackage
                    
                
            
        
        
            org.apache.maven.plugins
            maven-war-plugin
            2.4
            
                false
            
        
    

采用以上方式后,即可使用mvn clean install命令进行打包安装

你可能感兴趣的:(Spring,boot,spring,boot)