spring boot项目打包成war包

环境 Java 8 Spring Boot 2.1.7.RELEASE

pom.xml文件中,将打包方式改成war

1
<packaging>war</packaging>

然后添加Tomcat依赖配置,覆盖Spring Boot自带的Tomcat依赖

1
2
3
4
5
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>

<build></build>标签内配置项目名(该配置类似于server.context-path=tengxt

1
2
3
4
5
<build>
    //...
     <finalName>tengxt</finalName>
    //...
</build>

在启动类ServletInitializer 中继承(extends)类SpringBootServletInitializer

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;

@SpringBootApplication
public class SpringBootWarApplication extends SpringBootServletInitializer {

	public static void main(String[] args) {
		SpringApplication.run(SpringBootWarApplication.class, args);
	}

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
		return builder.sources(SpringBootWarApplication.class);
	}
}

准备完毕后,运行mvn clean package命令即可在target目录下查看生产war包。

source code