SpringBoot项目部署到Tomcat中运行
记录一下SpringBoot工程打包部署到Tomcat容器中运行的过程,(永远猜不到客户还会有哪些奇葩要求)
SpringBoot打war包
将springboot打包war包放入tomcat容器内运行
1.修改maven文件的打包方式
<packaging>war</packaging>
2.移除SpringBoot的内置tomcat
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
复习一下maven依赖的生命周期
compile:编译依赖范围,默认的依赖范围,依赖在编译、测试、运行时三种classpath下都有效test:测试依赖范围,只有测试classpath有效provided:已提供依赖范围,对于编译和测试classpath有效,运行时classpath无效。例如 servlet-api,在编译和测试时需要用这个依赖,但在运行项目时的时候,由于容器已经提供了,就不需要Maven重复地引入。runtime:运行时依赖范围。测试、运行时classpath有效,编译时无效。例如jdbc驱动包,项目主代码的编译只需要JDK提供的JDBC接口,只有在执行测试或者运行项目的时候才需要实现上述接口的具体JDBC驱动。system:系统依赖范围,和provided依赖范围一致,但是使用system依赖时,必须通过systemPath元素显示的指定依赖文件的路径。由于此类依赖不是通过 Maven 仓库解析的,而且往往与本机系统绑定,可能造成构建的不可移植,因此应该慎用。systemPath元素可以引用环境变量。import:用于一个dependencyManagement对另一个dependencyManagement的继承。
3.修改启动类
@SpringBootApplication
// 继承 SpringBootServletInitializer 类
public class MapApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(MapApplication.class, args);
}
//重写configure方法
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return builder.sources(MapApplication.class);
}
}
4.重新打包
mvn clean
mvn package
5.部署war包
移动target目录中的war包文件放入tomcat的wabapps文件夹中。
当然你也可以宝塔,随你便。
6.启动tomcat
观察tomcat日志,成功启动

7.喝杯可乐庆祝一下🥤
[dog]


提供强力驱动