| name | eliteforge-new-java-maven-model |
| description | 为 Java 多模块 Maven 项目生成新的 model 模块。在仓库根 `pom.xml` 的 description 中解析公司名称、产品名称、服务名称,自动创建 serviceName-modelName 模块目录、`pom.xml`、包路径、artifactId、groupId,并把新模块写入父 `pom.xml` 的 `modules`;如果父 `pom.xml` 已按同族模块维护 `dependencyManagement`,同步补齐内部依赖管理条目。 |
| metadata | {"version":"1.0.1"} |
Java Maven Model 模块
优先运行 scripts/scaffold_java_maven_model.py 创建模块骨架,不要手写模块名、pom.xml、包路径和父模块声明。脚本会从根 pom.xml 的 description 提取 公司名称、产品名称、服务名称,并按约定完成命名转换;如果父 pom.xml 已存在同族内部模块的 dependencyManagement 条目,也会一并补齐。空目录使用 .gitkeep 保证能被 Git 跟踪。
工作流
- 先在目标仓库根目录执行一次
--dry-run;如果当前目录不是根目录,传 --repo-root。
- 复核脚本输出的
moduleName、packageName、groupId、artifactId、parent、managedDependency。
- 确认无误后再执行正式命令,创建
<serviceName>-<modelName> 模块。
- 执行后用
git diff 或直接打开父 pom.xml,确认至少同步了 <modules>,并检查是否按仓库既有约定补齐了 dependencyManagement。
- 仅当用户明确要求,或仓库规范明确要求时,再继续补类、依赖、文档或测试。
快速命令
python3 .agents/skills/eliteforge-new-java-maven-model/scripts/scaffold_java_maven_model.py reasoning-engine
python3 .agents/skills/eliteforge-new-java-maven-model/scripts/scaffold_java_maven_model.py reasoning-engine --repo-root /path/to/repo
python3 .agents/skills/eliteforge-new-java-maven-model/scripts/scaffold_java_maven_model.py reasoning-engine --dry-run
固定规则
- 模块名使用
<serviceName>-<modelName>,serviceName 必须从根 pom.xml 的 description 读取。
- 包名使用
cn.<companyName>.<productName>.<serviceName>.<modelName>,全部转 dot 风格。
artifactId 使用 app-<companyName>-<productName>-<serviceName>-<modelName>,全部转短横线风格。
groupId 使用 cn.<companyName>.<productName>,全部转 dot 风格。
parent 通过目标目录向上查找最近的 Maven 聚合父项目识别,<version> 固定写 ${revision}。
- 默认创建
pom.xml、src/main/java/<packagePath>/.gitkeep、src/main/resources/.gitkeep、src/test/java/.gitkeep。
- 如果父
pom.xml 已有 <modules>,追加新模块;如果没有,则创建 <modules> 块;不要重复写入。
- 如果父
pom.xml 已按相同 groupId 和 app-<company>-<product>-<service>-* 约定维护内部模块 dependencyManagement,则追加当前模块的受管依赖;如果仓库没有这套约定,不要凭空新增。
- 如果仓库里存在
<serviceName>-runtime-plane,可把它当作可选参考模块,用于观察命名和最小目录习惯;找不到时仍按内置最小骨架创建,不影响 skill 适用性。
- 脚手架完成后,优先回看
git diff,确认没有遗漏父 pom.xml 的模块聚合或内部依赖管理同步。
- 如果用户还要求补业务代码、测试或模块文档,先落模块骨架,再继续执行其他技能或仓库规范。