当前位置: 首页 > news >正文

关于maven编译没把resources资源包含进target目录

Spring Boot 项目的 “运行机制” 和 “资源加载逻辑”——target/classes 是后端服务实际 “读取资源” 的目录

  1. 编译打包阶段:当你执行 mvn compile(编译)或 mvn package(打包)时,Maven 会将 src/main/resources 下的所有资源文件(静态资源、配置文件等)复制到 target/classes 目录(这是 Maven/Gradle 等构建工具的 “约定”—— 将源码 / 资源编译为 “可运行的产物”)。

  2. 服务运行阶段:Spring Boot 启动后,会从 target/classes 目录 加载所有资源(包括 application.yml 配置、static 静态资源等)—— 因为这个目录是 Java 程序默认的 “类路径(Classpath)根目录”,所有编译后的代码(.class 文件)和资源文件都在这里,服务只能识别这个目录下的资源。

简单说:src/main/resources 是 “原料仓库”,target/classes 是 “成品仓库”,服务只会从 “成品仓库” 取货,不会直接去 “原料仓库”。

Spring Boot 对静态资源的默认映射规则(如 classpath:/static/),其中的 classpath: 指的就是 target/classes 目录。

比如你配置的 spring.web.resources.static-locations: classpath:/static/,实际指向的是:target/classes/static/ 目录(而非 src/main/resources/static/)。

如果 target/classes 下没有 static 目录,Spring Boot 会认为 “不存在 classpath:/static/ 这个静态资源目录”,自然无法找到 videos/0.mp4,最终返回 404。

一般来说处了yml配置没正确外,就是pom中没包含正确的构建资源的目录

<resources><!-- 1. 处理 src/main/java 下的 MyBatis Mapper XML(原有配置,保留) --><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource><!-- 2. 处理 src/main/resources 下的所有文件(关键修改:添加 **/*) --><resource><directory>src/main/resources</directory><includes><include>**/*.xml</include>  <!-- 保留原有:XML 文件(如 MyBatis 配置) --><include>**/*.yml</include>  <!-- 保留原有:YML 配置文件 --><include>**/*</include>      <!-- 新增:允许所有文件/目录(包括 static) --></includes><!-- 可选:关闭资源过滤(避免静态文件被 Maven 篡改,如替换 ${} 变量) --><filtering>false</filtering></resource>
</resources>

http://www.dtcms.com/a/398102.html

相关文章:

  • 网站开发文档合同wap712c
  • [Maven 基础课程]11_Windows 安装 Maven 私服 Nexus
  • LinuxC++项目开发日志——基于正倒排索引的boost搜索引擎(3——通过cppjieba库建立索引模块)
  • 早报库|深圳奔向全球“消费级3D打印第一城”;苹果持续扩招增材制造人才;乌军前线大量使用3D打印地雷
  • 爬虫数据存储:MongoDB 在电商采集中的应用
  • 【STM32项目开源】STM32单片机厨房安全监测系统系统
  • 在 ARM64 Ubuntu 20.04 上部署 Mailu 邮件服务器:深度排查 Docker Bridge 网络通信失败问题
  • ubuntu 20 安装python
  • Golang语言基础篇003_数组、切片、map详解
  • 传统网站开发下载 wordpress语言包
  • flowable的监听器顺序
  • 连接局域网、主干网和虚拟局域网
  • 【保姆级】| 基于Docker的dify部署流程
  • 网站建设 策划方案如何用flashfxp通过ftp访问网站服务器下载网站代码
  • 大规模无人机检测数据集:11998张高质量图像,支持YOLOv8、COCO、TensorFlow多格式训练,涵盖飞机、无人机、直升机三大目标类别
  • 软考-系统规划与管理师教程(第2版)- 2025 新增 / 改版重点
  • sparkml 多列共享labelEncoder
  • 【TS5】Electron与Flutter
  • 线程池高频面试题(核心原理+配置实践+常见误区)
  • 【LeetCode热题100(28/100)】两数相加
  • 网站搭建思路如何使用模板建设网站
  • 注册网站的步骤二手房出售
  • 新疆燃气从业人员考试真题练习
  • 知识图谱的表示与推理对自然语言处理中因果性语义逻辑的影响与启示研究
  • go go-zero的学习,持续中...
  • C++篇 类和对象(3)万能工具怎么用?
  • 跨端边云时序数据管理新范式:Apache IoTDB 的 DB+AI 融合之道
  • 线程同步与互斥和生产消费模型
  • Java怎么终止一个线程
  • 软件项目管理中, UT测试如何体现