这里开发后端程序使用: 一、pom.xml 修改(核心配置) 1.1 新增代码,打包方式:war 用于外置Tomcat部署 <!-- WAR改动1:新增代码,打包方式:war 用于外置Tomcat部署 --> <packaging>war</packaging> <!-- WAR改动1:新增代码,打包方式:war 用于外置Tomcat部署 --> 1.2 SpringBoot Web核心依赖:排除内置Tomcat <!-- WAR改动2:新增代码,修改 spring-boot-starter-web 依赖,排除内置 Tomcat --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> <!-- WAR改动2:新增代码,修改 spring-boot-starter-web 依赖,排除内置 Tomcat --> 1.3 外置Tomcat部署必备:编译期Tomcat依赖,运行时由外部Tomcat提供 <!-- WAR改动3: 2、外置Tomcat部署必备:编译期Tomcat依赖,运行时由外部Tomcat提供 provided作用域不会把 Tomcat 打进 war 包,运行由外部 Tomcat 提供容器环境,保证本地能正常调试不报错。--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <!-- WAR改动3--> 1.4 打包后war包名称:访问路径 http://localhost:8080/defect <!-- WAR改动4: 打包后war包名称:访问路径 http://localhost:8080/defect --> <finalName>defect</finalName> <!-- WAR改动4: 新增资源打包配置(<resources>节点) 作用:保证 MyBatis 的 Mapper 映射文件、yml 配置、图片、静态页面等资源可以被正常编译打包进 war,避免运行时找不到 XML、配置文件报错。 --> 1.5 新增资源打包配置(<resources>节点 <!-- WAR改动5: 新增资源打包配置(<resources>节点) 作用:保证 MyBatis 的 Mapper 映射文件、yml 配置、图片、静态页面等资源可以被正常编译打包进 war,避免运行时找不到 XML、配置文件报错。 --> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.yml</include> <include>**/*.properties</include> <include>**/*.xml</include> <include>**/*.html</include> <include>**/*.jpg</include> <include>**/*.png</include> </includes> </resource> </resources> <!-- WAR改动5: 新增资源打包配置(<resources>节点)--> 完整的pom.xml代码: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <!-- 继承SpringBoot父工程 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.1.RELEASE</version> <relativePath/> </parent> <!-- 项目坐标 --> <groupId>com.example</groupId> <artifactId>api</artifactId> <version>0.0.1-SNAPSHOT</version> <name>疵点分析系统后端</name> <description>纺纱厂疵点分析系统V1.0 SpringBoot后端项目</description> <!-- 步骤 1:WAR改动1:新增代码,打包方式:war 用于外置Tomcat部署 --> <packaging>war</packaging> <!-- WAR改动1:新增代码,打包方式:war 用于外置Tomcat部署 --> <!-- 全局属性配置 --> <properties> <java.version>1.8</java.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <spring-boot.version>2.3.7.RELEASE</spring-boot.version> </properties> <dependencies> <!-- 1、SpringBoot Web核心依赖:排除内置Tomcat --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- WAR改动2:新增代码,修改 spring-boot-starter-web 依赖,排除内置 Tomcat --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> <!-- WAR改动2:新增代码,修改 spring-boot-starter-web 依赖,排除内置 Tomcat --> </dependency> <!-- WAR改动3: 2、外置Tomcat部署必备:编译期Tomcat依赖,运行时由外部Tomcat提供 provided作用域不会把 Tomcat 打进 war 包,运行由外部 Tomcat 提供容器环境,保证本地能正常调试不报错。--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <!-- WAR改动3--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-thymeleaf</artifactId> </dependency> <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.4</version> </dependency> <!--hutool--> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.5.8</version> </dependency> <!-- MyBatis-Plus 整合--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.3.1</version> </dependency> <!-- 5、实体类简化工具 Lombok --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <!-- 3、数据库相关依赖 --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.23</version> </dependency> <!-- 图片上传 SDK 阿里云oss --> <dependency> <groupId>com.aliyun.oss</groupId> <artifactId>aliyun-sdk-oss</artifactId> <version>2.8.3</version> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.48</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-dependencies</artifactId> <version>${spring-boot.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <build> <!-- WAR改动4: 打包后war包名称:访问路径 http://localhost:8080/defect --> <finalName>defect</finalName> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.8.1</version> <configuration> <source>1.8</source> <target>1.8</target> <encoding>UTF-8</encoding> </configuration> </plugin> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.3.7.RELEASE</version> <configuration> <mainClass>com.example.fabric_api.FabricApiApplication</mainClass> </configuration> <executions> <execution> <id>repackage</id> <goals> <goal>repackage</goal> </goals> </execution> </executions> </plugin> </plugins> <!-- WAR改动5: 新增资源打包配置(<resources>节点) 作用:保证 MyBatis 的 Mapper 映射文件、yml 配置、图片、静态页面等资源可以被正常编译打包进 war,避免运行时找不到 XML、配置文件报错。 --> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> <resource> <directory>src/main/resources</directory> <includes> <include>**/*.yml</include> <include>**/*.properties</include> <include>**/*.xml</include> <include>**/*.html</include> <include>**/*.jpg</include> <include>**/*.png</include> </includes> </resource> </resources> <!-- WAR改动5: 新增资源打包配置(<resources>节点)--> </build> </project> 二、2:修改 SpringBoot 启动类(必须继承 SpringBootServletInitializer) 启动类完整代码范例 修改为:public class FabricApiApplication extends SpringBootServletInitializer { 三、application.yml 配置文件(无需额外修改,常规配置即可) 四、Maven 打包两种方式 方式 1:IDEA 右侧 Maven 面板 打开 Maven → 项目 → Lifecycle 先执行 clean 清空旧包 再执行 package 打包 打包后在 target 目录下生成 defect.war 方式 2:命令行打包 项目根目录打开 cmd: mvn clean package -Dmaven.test.skip=true 五、Tomcat 部署部署操作 将 target/defect.war 复制到 Tomcat/webapps 文件夹 六、运行 bin/startup.bat 启动 Tomcat 访问地址:http://localhost:8080/defect 七、前端api需要调整 调试环境的逻辑如下: proxy: { '/api': { target: 'http://127.0.0.1:8080/defect', secure: false, // 如果是https接口,需要配置这个参数 ws: true,//是否代理websockets changeOrigin: true, pathRewrite: { '^/api': '' } } },