mcpField
E
eliteforge-java-service-generator

eliteforge-java-service-generator

github.com/cloudsen开发46 次安装
代码仓库

关于 eliteforge-java-service-generator

EliteForge Java Service Generator 是基于 Maven archetype 创建 EliteForge Java 服务的技能。它规范输入校验、项目生成、一致性检查和初始化,并要求使用生成项目内的 make 目标。

主要功能

  1. 01基于 archetype 生成 Java 服务
  2. 02校验必需的项目标识
  3. 03将技术选型映射为 enable 标志
  4. 04检查生成项目的一致性
  5. 05使用项目内 make 目标初始化

适用场景

  1. 01创建新的 EliteForge Java 服务
  2. 02初始化生成的服务项目
  3. 03验证生成的包名和 Maven 元数据

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/cloudsen/eliteforge-skills --skill eliteforge-java-service-generator

安装后在 Claude Code 中输入/eliteforge-java-service-generator确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
enable-flags.md
mapping-rules.md
scripts/
generate.py

详细介绍

EliteForge Java 服务生成器(Maven Archetype)

目标

运行 scripts/generate.py 创建新的 EliteForge Java 服务,并通过项目内部的 make 命令完成项目构建和初始化。

前置条件

  • 需要 python3、make、JDK 和网络访问权限(用于下载 archetype)。

构建命令策略(必须遵循)

  • 在生成项目的根目录中,使用项目内部的 make 目标执行构建/初始化/验证任务。
  • 不要在生成的项目中运行系统 Maven 命令(例如:mvn clean install、mvn test)。
  • 如果明确要求在生成的项目中执行 Maven 命令,只能使用项目包装器:./mvnw ...。
  • 命令示例或执行步骤中,绝不能用系统 mvn 替代 ./mvnw。

必填输入(绝不可推断)

  • companyName
  • productName
  • serviceName
  • 使用以下正则表达式验证这三项:^[a-z0-9]+(-[a-z0-9]+)*$
  • 如果有任何值缺失或无效,只询问缺失或无效的字段。

工作流(每次运行)

  1. 收集并验证必填输入。
  2. 构建命令并运行脚本:
    • python3 scripts/generate.py --company <companyName> --product <productName> --service <serviceName> [--desc "<projectDescription>"] [--tech "<tech stack text>"] [--enable enableX --enable enableY ...]
  3. 用户提供技术栈文本时,将其映射为 enableXXX:
    • 使用 references/mapping-rules.md。
    • 通过 --enable 传递用户明确指定的开关。
    • 使用 references/enable-flags.md 作为规范的标志列表。
    • 如不确定,应提问而非猜测。
  4. 验证结果:
    • 输出文件夹存在:app-<companyName>-<productName>-<serviceName>/
    • 该文件夹中存在 pom.xml。
  5. 在项目根目录(<artifactId>/)运行生成后的完整性检查:
    • Java 包应与预期的包名前缀匹配(检查 src/main/java 和 src/test/java)。
    • Maven 模型名称应与预期值匹配(检查 pom.xml 中的 <name>)。
    • pom.xml 中的 artifactId 应与预期的 artifactId 相同。
    • 如有任何不匹配,报告预期值与实际值,然后停止。
  6. 在根目录(<artifactId>/)运行 make install 初始化项目,并要求命令成功(退出代码 0):
    • 示例:cd app-<companyName>-<productName>-<serviceName> && make install
  7. 生成后进行构建/测试/验证时,继续使用项目的 make 目标(例如 make test、make build),而不要直接运行 Maven 命令;如无法避免 Maven 命令,只能运行 ./mvnw ...。
  8. 失败时,返回确切错误和完整的已执行命令(包括失败的 make 命令)。

坐标规则(脚本行为)

  • groupId = cn.<companyName(with '-' -> '.')>.<productName(with '-' -> '.')>
  • artifactId = app-<companyName>-<productName>-<serviceName>

后置检查的预期值

  • expectedGroupId = groupId
  • expectedArtifactId = artifactId
  • expectedJavaPackagePrefix = <expectedGroupId>.<serviceName(with '-' -> '.')>
  • expectedMavenModelName = expectedArtifactId(除非用户明确要求使用其他命名规则)

快速示例

  • 最简示例:
    • python3 scripts/generate.py --company cisdigital --product cap --service cache-center --desc "CAP 缓存中心"
  • 生成后的初始化(必需):
    • cd app-cisdigital-cap-cache-center && make install
  • 技术栈与显式覆盖:
    • python3 scripts/generate.py --company cisdigital --product cap --service cache-center --tech "mysql redisson lombok mapstruct" --enable enableJacksonDatatypeJsr310

评论

支持 Markdown