默认场景下,Springboot作为一个jar运行,但是在某些特殊场景下 需要将后台和其他应用共用一个web容器(tomcat之类);
客户强制要求(例如策略只给了一个端口);
其他;
可以打包成war文件进行发布。
分步指南
一般情况下,将springboot工程打包为war分为以下几个步骤:
修改pom.xml,将打包方式设置为war 修改jar为war
移除springboot默认的tomcat配置
移除默认的spring-boot-starter-tomcat,使用provided
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-tomcat org.springframework.boot spring-boot-starter-tomcat provided
添加tomcat-servelt-api依赖
*注意根据自己的情况修改version
javax.servlet javax.servlet-api 3.1.0 provided org.apache.tomcat tomcat-servlet-api 8.0.36 provided
修改启动方法
增加configure配置
@SpringBootApplication
public class ServerApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(ServerApplication.class);
}
public static void main(String[] args) {
SpringApplication.run(ServerApplication.class, args);
}
}
添加打包插件
在pom.xml的build > plugins 中添加打包插件,可以指定打包的名称等配置
org.apache.maven.plugins maven-war-plugin src/main/resources/** yehuo false
修改项目的context-path与warName一致 修改application.properties的context-path和port等信息和实际部署的情况改为一致
server.port=server.context-path=yehuo



