虽然springboot提倡把项目打成jar包,然后以命令行的方式运行。但偶尔也有需要打成war放进tomcat等web容器中运行
1. 修改pom文件打包方式为war
<packaging>war</packaging>
2. 打包排除tomcat依赖
添加依赖,依赖范围设置为provided,在使用tomcat容器时就不会使用该依赖,避免发生冲突
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
provided : 该范围和compile很像,它表示你希望在项目运行时由JDK或容器来提供这个依赖.它仅仅在测试和编译时使用,并且该范围的依赖不具有传递性.
3. 继承SpringBootServletInitializer
让springboot项目的主类继承SpringBootServletInitializer,并实现configure方法
@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(DemoApplication.class);
}
}