1、更改打包方式

在子工程foodie-dev-api的pom更改打包方式
war

2、去除内置tomcat

主工程maven中移除tomcat
image.png
image.png

3、添加servlet依赖

由于移除了内置tomcat,所以自带的servlet依赖也没有了
需要手动添加
主工程的pom中添加依赖

  1. <!--打包war【3】 添加依赖-->
  2. <dependency>
  3. <groupId>javax.servlet</groupId>
  4. <artifactId>javax.servlet-api</artifactId>
  5. <scope>provided</scope>
  6. </dependency>

预览:

聚合工程pom

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <modelVersion>4.0.0</modelVersion>
  6. ...省略
  7. <packaging>pom</packaging>
  8. ...省略
  9. <dependencies>
  10. ...省略依赖
  11. <dependency>
  12. <groupId>org.springframework.boot</groupId>
  13. <artifactId>spring-boot-starter-web</artifactId>
  14. <!--打包war【2】 移除内置tomcat-->
  15. <exclusions>
  16. <exclusion>
  17. <artifactId>spring-boot-starter-tomcat</artifactId>
  18. <groupId>org.springframework.boot</groupId>
  19. </exclusion>
  20. </exclusions>
  21. </dependency>
  22. ...省略依赖
  23. <!--打包war【3】 添加依赖-->
  24. <dependency>
  25. <groupId>javax.servlet</groupId>
  26. <artifactId>javax.servlet-api</artifactId>
  27. </dependency>
  28. </dependencies>
  29. </project>

api子工程pom

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <project xmlns="http://maven.apache.org/POM/4.0.0"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5. <parent>
  6. <artifactId>foodie-dev</artifactId>
  7. <groupId>com.shiers</groupId>
  8. <version>1.0-SNAPSHOT</version>
  9. </parent>
  10. <modelVersion>4.0.0</modelVersion>
  11. <artifactId>foodie-dev-api</artifactId>
  12. <!--<packaging>jar</packaging>-->
  13. <!-- 打包war [1] -->
  14. <packaging>war</packaging>
  15. </project>

4、增加war的启动类

image.png
在启动类同级目录下创建WarStarterApplication

  1. package com.shiers;
  2. import org.springframework.boot.builder.SpringApplicationBuilder;
  3. import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
  4. /**
  5. * Demo class
  6. *
  7. * @author shierS
  8. * @date 2021/6/10
  9. */
  10. // 打包war【4】 增加war的启动类
  11. public class WarStarterApplication extends SpringBootServletInitializer {
  12. @Override
  13. protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
  14. //指向Application这个sringboot启动类
  15. return builder.sources(Application.class);
  16. }
  17. }

5、打包

使用clear后install,在项目路径target下出现war包
image.png
将文件重命名后上传至服务器 /usr/local/tomcat-api/webapps
等待一会后,会自动解压成文件夹,我们刷新可以发现文件夹已经出现
image.png
浏览器访问
image.png
成功!