转自:
下文笔者讲述SpringBoot项目打成war包的方法分享,如下所示
笔者先简述一下war及SpringBoot的相关概念
war包由sun公司提出的一种web应用程序格式,她其实是一个压缩包
里面包含lib,class,resource,config(web.xml)等信息
war是一个可以直接运行的web模块
在网站程序的打包中,我们经常将其打成war包
然后放入到tomcat中运行
例:
我们将生成的war包,放入到tomcat的webapp目录下,tomcat会自动解压war包,然后对外提供服务
我们都知道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 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这个错误 org.springframework.boot spring-boot-starter-tomcat provided appName true org.springframework.boot spring-boot-maven-plugin repackage org.apache.maven.plugins maven-war-plugin 2.4 false
采用以上方式后,即可使用mvn clean install命令进行打包安装