sprongboot多模块打war包部署tomcat

1.父模块pom文件排除spring-boot-starter-web中的Tomcat

<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>

2.父模块pom文件添加依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope>
</dependency>

在这里插入图片描述

3.子模块foodie-dev-api(含springboot启动类入口的模块) pom文件中增加打包方式

<packaging>war</packaging>

4.子模块foodie-dev-api pom文件配置

<build><!-- war包打包名称 --><finalName>foodie</finalName><plugins><plugin><!-- The plugin rewrites your manifest --><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><configuration><!-- 指定该Main Class为全局的唯一入口 --><mainClass>com.imooc.Application</mainClass></configuration></plugin></plugins>
</build>

在这里插入图片描述

5.子模块foodie-dev-api的启动类Application继承SpringBootServletInitializer实现configure

public class Application extends SpringBootServletInitializer {@Overrideprotected SpringApplicationBuilder configure(SpringApplicationBuilder application) {return application.sources(Application.class);}public static void main(String[] args) {SpringApplication.run(Application.class, args);}
}

在这里插入图片描述

6.打包成war

maven:clean -> install,在foodie-dev-api模块会生成target目录,旗下存在foodie.war
在这里插入图片描述

注意事项:

使用外部Tomcat部署访问的时候,application.properties(或者application.yml)中配置的
server.port=
server.servlet.context-path=
将失效,请使用tomcat的端口,tomcat,webapps下项目名进行访问。

参考:
sprongboot多模块打war包部署tomcat