1. 基本信息
| 项目 | 内容 |
|---|---|
| 名称 | multi-module-maven-rrezartprebreza-spring-boot-skills |
| 作者/维护者 | rrezartprebreza(个人开发者) |
| 来源链接 | https://github.com/rrezartprebreza/spring-boot-skills/tree/main/skills/spring-boot-4/multi-module-maven |
| 许可证 | MIT(GitHub API 获取) |
| GitHub Stars | 196(整个 spring-boot-skills 合集仓库;该数字属整个合集,不代表本技能自身热度,GitHub API 获取) |
| Forks | 35(同上,合集整体,GitHub API 获取) |
| 最新版本 | 无独立版本号;仓库整体最近一次修订为 2026-07-30(GitHub API 获取) |
| 安装方式 | 复制该子目录到 agent 的 skills 目录(见第 10 章) |
2. 功能介绍与亮点
这是一份 Spring Boot 多模块 Maven 项目的结构与依赖治理规范,把父子 POM 分层、模块间依赖方向、Spring Boot 4 模块化 starter 命名变化整理成可直接对照执行的清单。核心内容:
- 父子 POM 分层:父 POM(
packaging=pom)集中管理版本号与共享插件配置,dependencyManagement只声明版本不添加到 classpath,与直接写在<dependencies>里(会污染所有子模块)的区别 - 典型四模块划分:
domain(纯 Java,零框架依赖)→application(用例编排,可用 Spring)→infrastructure(JPA/Redis/HTTP 等技术细节)→web(可运行应用),并给出一张“谁能依赖谁”的边界表,防止循环依赖与框架代码渗入领域层 - Spring Boot 4 模块化 starter 改名清单:
spring-boot-starter-web→spring-boot-starter-webmvc、OAuth2 系列 starter 统一加security-前缀、spring-boot-starter-aop→spring-boot-starter-aspectj、Flyway/Liquibase 不再随 JPA/JDBC starter 传递引入需显式添加、-test系列 starter 自包含无需再叠加通用 test starter - 10 条“agent 常犯错误”清单:把打包插件放进父 POM 而非可运行模块、依赖声明位置搞混、模块间循环依赖、
domain模块误引入 Spring、沿用 Boot 4 已改名的旧 starter、直接访问其他模块自动配置类的内部成员(Boot 4 起不再是公开 API)等
全部内容为纯 Markdown 文档配 XML/Java 代码示例,无外部脚本或可执行文件。
3. 适用场景
所属分类:工程效率与代码质量(不涉及 agent 自身配置或第三方系统集成,产出物是围绕“写代码”的技术栈编码规范)。
适合任何采用多模块 Maven 结构组织代码的 Spring Boot 团队——这是超出玩具规模的后端项目里最常见的物理组织方式之一,与团队是否额外采用 DDD、六边形架构或 API-first 等特定方法论无关,受众比这些方法论特定的技能更广。尤其是正在升级到 Spring Boot 4 的团队:多个基础 starter 被重新命名,agent 若沿用旧名称生成依赖声明,轻则构建报错、重则某个 starter 悄悄失效但项目仍能启动。
4. 跨 Agent 兼容性
- Claude Code:原生支持——仓库明确提供
.claude/skills/安装路径与徽章标注兼容 - Codex:原生支持——仓库同时提供
.codex/skills/安装路径与徽章标注兼容 - OpenClaw:未验证——SKILL.md 遵循标准 YAML front matter + Markdown 正文格式,理论上可迁移,但仓库文档未点名支持
- Hermes Agent:未验证——同上,未见任何提及
5. 推荐理由
多模块 Maven 结构是任何超出玩具规模的 Spring Boot 项目几乎绕不开的组织方式,这份技能把父子 POM 分层规则、模块依赖边界表,以及 Spring Boot 4 一批容易被忽略的 starter 改名清单整理成一份可直接对照执行的规范。对正在把项目升级到 Boot 4、或用 agent 搭建新多模块项目的后端团队,这是一份能实打实拦住依赖配置错误与循环依赖问题的护栏文档。
6. 评分
| 维度 | 分数 | 说明 |
|---|---|---|
| 受欢迎程度 | 5 | 该技能所属子目录本身尚无独立的第三方评测或引用;所属合集仓库由单一开发者维护,196 星与 35 复刻数字属整体仓库,不可归给单个子技能;第三方技能市场 skills.sh 显示该子技能被独立安装 55 次,属起步阶段的小体量数字 |
| 可用性 | 9 | 复制单个文件夹即可安装,无需配置或付费依赖;仓库最近一次修订为 2026-07-30,内容随 Spring Boot 4 当前版本同步维护;正文含完整可直接复制的 POM XML 与依赖边界表 |
| 安全性 | 9 | 纯 Markdown 文档配 XML/Java 示例,技能自身不执行任何命令、不联网、不要求任何凭据;许可证明确(MIT);第三方平台 skills.sh 显示 Socket 与 Snyk 两项独立安全审计均为 Pass;内容未见任何可疑指令或误导性说明 |
综合评分:7.7
7. 跟同类 Skills 相比的优势
| 项目 | 定位 | 与本技能的差异 |
|---|---|---|
| layered-architecture(同仓库另一子技能) | 更基础的 Controller → Service → Repository 三层架构规范 | 只约束单模块内的代码分层,不涉及 Maven 物理模块边界、父子 POM 依赖治理与 Boot 4 starter 改名这类构建层面的问题;覆盖面更泛但深度不及本技能 |
| spring-boot-project-creator(giuseppe-trisciuoglio/developer-kit) | 调用 Spring Initializr API 从零生成全新 Spring Boot 项目骨架,可选 DDD 或分层架构、自动配置 JPA/OpenAPI/Docker Compose | 面向“从零创建单模块新项目”的一次性脚手架工具,不处理已有多模块项目的父子 POM 依赖边界治理与 Boot 4 迁移期的 starter 改名细节,两者服务的项目阶段不同 |
8. 用户评价
该技能目前在第三方平台尚无具名用户评价。
9. 其他补充
仓库同时维护 Spring Boot 3 分支下的等价版本(skills/spring-boot-3/multi-module-maven),父子 POM 分层与依赖边界规则不变,Boot 4 专属的 starter 改名清单在 Boot 3 分支替换为对应说明,供仍在 Spring Boot 3.x 的团队使用。
10. 安装使用方式
Claude Code:
mkdir -p "$PROJECT_DIR/.claude/skills"
cp -r skills/spring-boot-4/multi-module-maven "$PROJECT_DIR/.claude/skills/"
Codex:
mkdir -p "$PROJECT_DIR/.codex/skills"
cp -r skills/spring-boot-4/multi-module-maven "$PROJECT_DIR/.codex/skills/"
安装后无需重启 agent,下次涉及 Maven 模块结构、父子 POM 或依赖声明的对话会自动触发该技能。
11. 注意事项
- 内容专注 Maven 工具链(父子 POM、
dependencyManagement、Maven 插件配置),若团队使用 Gradle 构建,整份技能不适用,需另寻 Gradle 多模块方案 - Boot 4 starter 改名清单覆盖的是仓库 2026-07-30 最近一次更新时已知的命名;Spring Boot 4.x 后续小版本若继续调整 starter 名称,需自行核实是否有新变化
- 仓库由单一个人开发者维护,无官方或厂商背书,长期维护延续性依赖作者个人投入