Maven多模块项目MyMetaObjectHandler自动填充日期未生效

plaintext

复制代码
your-project(父模块)
├─ takeaway-boot(Boot 启动模块,含 main 方法,需要依赖其他子模块)
├─ takeaway-handler(handler 子模块,含 MyMetaObjectHandler)
├─ takeaway-service(service 子模块)
└─ takeaway-mapper(mapper 子模块)

只需在 takeaway-boot 模块的 pom.xml 中,添加对 takeaway-handler 子模块的依赖,Maven 就会自动构建 handler 模块,并将其纳入 Spring 扫描范围:

xml

复制代码
<!-- takeaway-boot/pom.xml -->
<dependencies>
    <!-- 其他依赖(如 service、mapper 模块) -->
    <dependency>
        <groupId>com.campus.takeaway</groupId> <!-- 父模块的 groupId,与 handler 模块一致 -->
        <artifactId>takeaway-handler</artifactId> <!-- handler 子模块的 artifactId -->
        <version>${project.version}</version> <!-- 版本号,与父模块一致(用 ${project.version} 自动对齐) -->
    </dependency>
</dependencies>

额外注意:确保 handler 子模块是 "可依赖的模块类型"

Maven 子模块的 pom.xml 中,packaging 类型默认是 jar(可被其他模块依赖),如果 handler 模块的 packaging 被误设为 pom(父模块类型,不可被依赖),也会导致依赖失败。

检查 takeaway-handler 模块的 pom.xml,确保 packagingjar

xml

复制代码
<!-- takeaway-handler/pom.xml -->
<parent>
    <groupId>com.campus.takeaway</groupId>
    <artifactId>your-project</artifactId>
    <version>1.0.0</version>
</parent>

<artifactId>takeaway-handler</artifactId>
<packaging>jar</packaging> <!-- 必须是 jar,默认也是 jar,不要改成 pom -->

验证:重新构建项目并启动

  1. 先清理并构建父模块(确保所有子模块按依赖顺序构建):在父模块根目录执行 Maven 命令:

    bash

    复制代码
    mvn clean install

    执行成功后,会在 takeaway-handler/target 目录下生成 takeaway-handler-1.0.0.jar(说明模块已被正确构建)。

  2. 启动 Boot 模块 :此时 takeaway-boot 模块会加载 takeaway-handler 模块的 MyMetaObjectHandler 类,Spring 也能正常扫描到该类,自动填充功能就能生效了。

多模块开发的核心依赖原则

在 Maven 多模块项目中,只有被 "启动模块" 直接或间接依赖的子模块,才会被构建和加载。比如:

  • 如果 takeaway-boot 依赖 takeaway-service,而 takeaway-service 依赖 takeaway-handler,那么 takeaway-handler 会被间接依赖,也能生效。
  • 但如果 takeaway-boot 不直接 / 间接依赖 takeaway-handler,该模块就会被 "孤立",无法参与项目构建。
相关推荐
livemetee13 小时前
【关于Spring声明式事务】
java·后端·spring
Esaka_Forever15 小时前
Python 完整内存管理机制详解
开发语言·python·spring
happyprince17 小时前
09-vLLM KV Cache 系统完整分析
java·spring·vllm
折哥的程序人生 · 物流技术专研17 小时前
Java面试通关⑩:MyBatis核心源码全集
mybatis·校招·java面试·orm框架·源码解析·数据库交互·社招
AI人工智能+电脑小能手17 小时前
【大白话说Java面试题 第154题】【06_Spring篇】第14题:Spring 支持的 Bean 作用域
java·开发语言·spring·面试
河阿里18 小时前
SLF4J深度指南(Java):从原理到 Spring 项目实战
java·开发语言·spring
Ricky_Theseus18 小时前
CrewAI 生产化:缓存、回调、LLM 配置
java·spring·缓存
TanYYF1 天前
spring ai入门教程二
java·人工智能·spring
SeeYa-J1 天前
Spring IOC(Inversion of Control)
java·spring·rpc
长不胖的路人甲1 天前
Redis 数据删除策略
数据库·redis·spring