springboot war包部署
使用maven打包
pom文件添加
<!--war包 标志-->
<packaging>war</packaging>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<!--移除自带tomcat-->
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--添加外部tomcat启动 provided表示该依赖不会被打包-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<!--修改war包名称-->
<build>
<finalName>tomcat</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
添加
第一种添加SpringBootServletInitializer方法重写configure()
public class ServletInitializer extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(SpringTomcatApplication.class);
}
}
第二种在启动类继承SpringBootServletInitializer重写configure()
@SpringBootApplication
public class SpringTomcatApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(SpringTomcatApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(SpringTomcatApplication.class);
}
}
使用maven的 lifecycle->clean->package
注意
springboot 2.0以上 不支持 tomcat7及以下版本
如果一定要使用 请更换tomcat里面的jar包 servlet-api.jar等 具体请看启动的报错日志