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,该模块就会被 "孤立",无法参与项目构建。
相关推荐
我是大猴子1 小时前
Spring代理类为何依赖注入失效?
java·后端·spring
小哇6663 小时前
MybatisPlus-JSON类型处理器 存取 数据库的JSON 字段数据
mybatis
Java成神之路-3 小时前
通俗易懂理解 Spring MVC 拦截器:概念、流程与简单实现(Spring系列16)
java·spring·mvc
小旭95275 小时前
Spring Security 实现权限控制(认证 + 授权全流程)
java·后端·spring
海兰6 小时前
使用 Spring AI 打造企业级 RAG 知识库第二部分:AI 实战
java·人工智能·spring
難釋懷7 小时前
缓存同步
spring·缓存·mybatis
阿丰资源7 小时前
SpringBoot+MySQL+MyBatis-Plus+Vue前后端分离仓库管理系统 (附资料)
spring boot·mysql·mybatis
小信丶7 小时前
Spring Cloud Stream EnableBinding注解详解:定义、应用场景与示例代码
java·spring boot·后端·spring
亚历克斯神7 小时前
Spring Cloud 2026 架构演进
java·spring·微服务
weixin_413838568 小时前
基于区块链的校园二手书交易系统
vue.js·spring·区块链·fabric