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,该模块就会被 "孤立",无法参与项目构建。
相关推荐
invicinble30 分钟前
spring提供的其他机制
java·后端·spring
Slow菜鸟1 小时前
Maven 仓库下载机制
java·数据库·maven
Hexian25802 小时前
SpringAI+RAG
java·spring·ai
m0_639310793 小时前
大数据技术原理-HDFS的安装与应用
java·大数据·jvm·hadoop·spring·hdfs·eclipse
XiYang-DING4 小时前
【Spring】SpringIoC&DI
java·spring·log4j
xixingzhe24 小时前
spring构造函数注入对比@Resource
java·后端·spring
marsh02064 小时前
54 openclaw钩子函数使用:在框架生命周期中注入自定义逻辑
java·前端·spring
北风toto5 小时前
通过Entity 创建数据库中的表,目前只支持mysql,A.CTable使用mybatis/mybatis-plus自动创建表
数据库·mysql·mybatis
Alson_Code6 小时前
如何在本地部署大模型-ollama_(保姆级教程)
spring·ai编程·ollama
invicinble7 小时前
spring事务相关信息量的沉淀
java·后端·spring