修改pom.xml
修改打包形式
<packaging>war</packaging>
移除SpringBoot自带的tomcat
找到 spring-boot-starter-web 节点,添加 <exclusions> :
<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>
添加servlet-api依赖
<dependency>
<groupId>org.apache.tomcat</groupId>
<artifactId>tomcat-servlet-api</artifactId>
<version>8.0.36</version>
<scope>provided</scope>
</dependency>
更改启动类
在启动类MyWebApplication.class 同级包下,新建一个Tomcat.class (类名无所谓)
/**
* @author Bokai Sun
* @version 1.0
* @date 2019/11/27 11:00
*/
//继承SpringBootServletInitializer,并重写configure方法
public class Tomcat extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
//这里需要指向包含main方法的启动类
return builder.sources(MyWebApplication.class);
}
}
跳过test
在IDEA中,选择File -> Settings -> Build,Excecution,Deployment -> Build Tools -> Maven -> Runner
勾选 Skip tests
项目打包
点击 Maven -> my-web(项目名) -> Lifecycle -> package
将项目打包,如果没有跳过test,此处可能会报错。
显示 [INFO] BUILD SUCCESS
后,在项目路径下的target文件夹中,把war包copy到tomcat的webapps文件夹下,启动tomcat,即可通过ip地址:8080/项目名访问。
可能的报错
(Cannot determine embedded database driver class for database type NONE)
网上查到通过tomcat启动SpringBoot项目时,可能会报错 (Cannot determine embedded database driver class for database