SuperAPI AI 工具集

multi-module-maven

通用与其它

查看项目

更新于 10-16 03:07

技能介绍

用途:在采用多模块 Maven 结构的项目中,指导父 POM 与各子模块 POM 的写法,统一依赖版本与插件管理,并约束模块间的依赖方向与构建顺序。

主要能力:给出典型分模块结构(domain、application、infrastructure、web);父 POM 使用 packaging=pom,集中声明 modules、properties、dependencyManagement 与 pluginManagement;子模块通过 parent 继承版本,只在 web 模块引入 spring-boot-maven-plugin 等可运行模块专用插件;明确依赖规则——domain 不依赖任何模块、application 依赖 domain、infrastructure 依赖 domain 与 application、web 依赖全部模块,禁止反向或循环依赖。

使用方式:父 POM 中声明 groupId/artifactId/version/packaging 与 modules 列表,并以 spring-boot-starter-parent 为 parent;用 dependencyManagement 集中管理模块间版本(${project.version})及第三方版本;用 pluginManagement 统一 maven-compiler-plugin 等配置。子模块 POM 以父项目为 parent,只声明自身 artifactId 与 dependencies;可运行模块单独配置 spring-boot-maven-plugin。构建由 Maven 按模块依赖关系自动排序。

适用场景:Spring Boot 分层多模块项目、需要统一依赖版本与注解处理器配置的团队。

限制与注意:常见错误包括把 spring-boot-maven-plugin 放到父 POM、在父 POM 用 dependencies 而非 dependencyManagement(会污染所有模块 classpath)、模块间循环依赖、在 domain 模块引入 Spring 框架;模块间版本使用 ${project.version} 时需更新父版本;不要无兼容性理由地覆盖 Boot 管理的依赖版本,优先使用 Boot BOM 默认值。资料未提供具体 Maven 命令、许可与收费信息。