1、<packaging>jar</packaging> 改为 <packaging>war</packaging>
2、在maven里排除自带tomcat插件,有两种方法
1)、<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</exclusion>
</exclusions>
</dependency>
2)、<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
3、启动类Application.java继承SpringBootServletInitializer并重写configure方法
import org.mybatis.spring.annotation.MapperScan; 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; /** * @author lijz 启动类入口 * @description TODO * @date 2019/3/22 11:04 **/ @SpringBootApplication public class PcmsApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(PcmsApplication.class, args); } /** * 重写该方法,然后将maven配置打包方式改为war并移除嵌入式tomcat使项目能打成war部署到服务器上 * @param application * @return */ @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(PcmsApplication.class); } }
4、注意:spring boot只支持tomcat 8.5 以上版本,如果外部tomcat版本过低,需要在pom.xml里指定低版本的tomcat
<properties>
<tomcat.version>7.0.47</tomcat.version>
</properties>