Springboot发布为war版本给tomcat使用

📅 2026/6/26 18:15:32
Springboot发布为war版本给tomcat使用
这里开发后端程序使用 一、pom.xml 修改核心配置 1.1 新增代码,打包方式war 用于外置Tomcat部署 !-- WAR改动1新增代码,打包方式war 用于外置Tomcat部署 -- packagingwar/packaging !-- WAR改动1新增代码,打包方式war 用于外置Tomcat部署 -- 1.2 SpringBoot Web核心依赖排除内置Tomcat !-- WAR改动2新增代码,修改 spring-boot-starter-web 依赖排除内置 Tomcat -- exclusions exclusion groupIdorg.springframework.boot/groupId artifactIdspring-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 groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-tomcat/artifactId scopeprovided/scope /dependency !-- WAR改动3-- 1.4 打包后war包名称访问路径 http://localhost:8080/defect !-- WAR改动4: 打包后war包名称访问路径 http://localhost:8080/defect -- finalNamedefect/finalName !-- WAR改动4: 新增资源打包配置resources节点 作用保证 MyBatis 的 Mapper 映射文件、yml 配置、图片、静态页面等资源可以被正常编译打包进 war避免运行时找不到 XML、配置文件报错。 -- 1.5 新增资源打包配置resources节点 !-- WAR改动5: 新增资源打包配置resources节点 作用保证 MyBatis 的 Mapper 映射文件、yml 配置、图片、静态页面等资源可以被正常编译打包进 war避免运行时找不到 XML、配置文件报错。 -- resources resource directorysrc/main/java/directory includes include**/*.xml/include /includes /resource resource directorysrc/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 version1.0 encodingUTF-8? project xmlnshttp://maven.apache.org/POM/4.0.0 xmlns:xsihttp://www.w3.org/2001/XMLSchema-instance xsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd modelVersion4.0.0/modelVersion !-- 继承SpringBoot父工程 -- parent groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-parent/artifactId version2.2.1.RELEASE/version relativePath/ /parent !-- 项目坐标 -- groupIdcom.example/groupId artifactIdapi/artifactId version0.0.1-SNAPSHOT/version name疵点分析系统后端/name description纺纱厂疵点分析系统V1.0 SpringBoot后端项目/description !-- 步骤 1WAR改动1新增代码,打包方式war 用于外置Tomcat部署 -- packagingwar/packaging !-- WAR改动1新增代码,打包方式war 用于外置Tomcat部署 -- !-- 全局属性配置 -- properties java.version1.8/java.version project.build.sourceEncodingUTF-8/project.build.sourceEncoding project.reporting.outputEncodingUTF-8/project.reporting.outputEncoding spring-boot.version2.3.7.RELEASE/spring-boot.version /properties dependencies !-- 1、SpringBoot Web核心依赖排除内置Tomcat -- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId !-- WAR改动2新增代码,修改 spring-boot-starter-web 依赖排除内置 Tomcat -- exclusions exclusion groupIdorg.springframework.boot/groupId artifactIdspring-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 groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-tomcat/artifactId scopeprovided/scope /dependency !-- WAR改动3-- dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-thymeleaf/artifactId /dependency dependency groupIdorg.mybatis.spring.boot/groupId artifactIdmybatis-spring-boot-starter/artifactId version2.1.4/version /dependency !--hutool-- dependency groupIdcn.hutool/groupId artifactIdhutool-all/artifactId version5.5.8/version /dependency !-- MyBatis-Plus 整合-- dependency groupIdcom.baomidou/groupId artifactIdmybatis-plus-boot-starter/artifactId version3.5.3.1/version /dependency !-- 5、实体类简化工具 Lombok -- dependency groupIdorg.projectlombok/groupId artifactIdlombok/artifactId optionaltrue/optional /dependency !-- 3、数据库相关依赖 -- dependency groupIdmysql/groupId artifactIdmysql-connector-java/artifactId version8.0.23/version /dependency !-- 图片上传 SDK 阿里云oss -- dependency groupIdcom.aliyun.oss/groupId artifactIdaliyun-sdk-oss/artifactId version2.8.3/version /dependency dependency groupIdcom.alibaba/groupId artifactIdfastjson/artifactId version1.2.48/version /dependency dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-test/artifactId scopetest/scope exclusions exclusion groupIdorg.junit.vintage/groupId artifactIdjunit-vintage-engine/artifactId /exclusion /exclusions /dependency /dependencies dependencyManagement dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-dependencies/artifactId version${spring-boot.version}/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagement build !-- WAR改动4: 打包后war包名称访问路径 http://localhost:8080/defect -- finalNamedefect/finalName plugins plugin groupIdorg.apache.maven.plugins/groupId artifactIdmaven-compiler-plugin/artifactId version3.8.1/version configuration source1.8/source target1.8/target encodingUTF-8/encoding /configuration /plugin plugin groupIdorg.springframework.boot/groupId artifactIdspring-boot-maven-plugin/artifactId version2.3.7.RELEASE/version configuration mainClasscom.example.fabric_api.FabricApiApplication/mainClass /configuration executions execution idrepackage/id goals goalrepackage/goal /goals /execution /executions /plugin /plugins !-- WAR改动5: 新增资源打包配置resources节点 作用保证 MyBatis 的 Mapper 映射文件、yml 配置、图片、静态页面等资源可以被正常编译打包进 war避免运行时找不到 XML、配置文件报错。 -- resources resource directorysrc/main/java/directory includes include**/*.xml/include /includes /resource resource directorysrc/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 打包两种方式 方式 1IDEA 右侧 Maven 面板 打开 Maven → 项目 → Lifecycle 先执行 clean 清空旧包 再执行 package 打包 打包后在 target 目录下生成 defect.war 方式 2命令行打包 项目根目录打开 cmd mvn clean package -Dmaven.test.skiptrue 五、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: } } },