spring-boot-initlisted
Install: claude install-skill BaixuanZhu/skills
# Spring Boot 项目初始化(脚手架)
面向"新建 Java 项目"场景的**初始化助手**。核心理念:**不从零手写脚手架——`scripts/init.mjs` 从内置 Maven 父子标准模板一键生成。** 零网络依赖,完全本地自包含。补上 `spring-boot-dev`(只管写代码、不管建项目)的空白。
- **默认产物**:根 pom(`packaging=pom` + `<modules>`)+ 子模块。**单模块项目 = 只保留一个 app 子模块**(`--single`);多模块 = 库模块 + 可执行模块(`--core` / `--app` 命名)。一套模板覆盖全部场景,不分叉。
- **模板** `assets/maven-multimodule/`:常用插件齐备——enforcer(环境门禁)、flatten(`${revision}` CI-friendly 版本)、jacoco(覆盖率)、spotless(格式化)默认激活;failsafe / source / javadoc / deploy 已管理、按需启用。版本全部收敛在根 pom。lombok 为根公共依赖(全局生效);hutool-bom 在根 import(core / json / http 等按模块按需引,`references/02-dependencies.md`);内置阿里云镜像加速(用户级 settings.xml 镜像优先生效)。
- **初始依赖**:按项目类型问询决定(`references/02-dependencies.md`),不默认堆。
## 第 0 步:现状探测(收到任务先做)
| 探测项 | 方法 | 判定 |
|---|---|---|
| 是否已有项目 | 当前目录是否已有 `pom.xml` / `build.gradle` | 已有 Maven 工程 → **本技能不适用**(加模块 / 加依赖直接参照工程内现有模块的结构即可);空目录 → 整体初始化 |
| 子模块划分 | 预判(单服务 → 单模块形态;分层 / 多可部署单元 → 多模块),最终以 C1 问询为准 | 决定 `<modules>` 数量与命名(不预设 common/web 等固定划分) |
| Boot / JDK 版本 | 用户指定;否则按 C2 表默认 | 作为 init.mjs 的 `--boot` / `--jdk` 参数 |
## 何时使用本技能
| 信号 | 判定 |
|------|------|
| 用户说"新建 / 初始化 / 搭建 Spring Boot、Maven 项目""建父子工程""多模块""微服务骨架""init 一个 Java 项目" | 激活 |
| agent 正准备从零手写 `pom.xml` / 目录结构 / 主启动类 | 激活(改为 init.mjs 生成) |
| 要给新项目定初始依赖 | 激活 → `references/02-dependencies.md` |
| 项目已存在,要写 Controller / Service / 事务 / 配置 | **不适用** → spring-boot-dev |
| ORM CRUD / Mapper / 分页 | **不适用** → mybatis-plus-dev |
| 认证 / 鉴权 / token | **不适用** → sa-token-dev |
| 纯 Java 语言层(判空 / 集合 / 并发) | **不适用** →