| name | description |
|---|---|
java-pkg-gen |
Java包路径生成工具。根据基础包和项目名生成规范的Java包结构,支持自动获取当前目录名、包名去重、关键字冲突处理、单复数转换等规则。触发场景:用户提及Java包路径、package结构、包名规范、项目包组织、创建类时确定所属包等。 |
本skill用于生成规范化的Java包路径。根据用户指定的基础包和项目名,结合具体的类类型,生成符合规范的完整包路径。
| 包名 | 用途 | 备注 |
|---|---|---|
| constant | 常量类 | |
| enum | 枚举类 | 关键词冲突用复数 |
| dto | 参数传输对象 | |
| model | 数据库实体映射 | |
| service | 业务接口 | |
| service/impl | 业务实现类 | |
| util | 工具类 | |
| controller | 控制层 | Web接口 |
| config | 配置类 | |
| exception | 异常类 | |
| mq | 消息队列 | |
| interceptor | 拦截器 | |
| filter | 过滤器 | |
| vo | 视图对象 | 数据展示层 |
| mapper | 数据访问层 | 数据库交互 |
- 项目名转换:中划线转点号,全部小写
boot-skills→boot.skillsuser-center→user.center
- 类包名:全部小写,尽量用单数形式
- 自动获取项目名:优先使用用户提供的项目名,若未提供则自动获取当前工作目录名称
如果包名与Java关键字冲突,使用复数形式:
enum→enumsclass→classesinterface→interfaces
当前后两个包名重复时,去重处理:
boot.boot→bootcom.simonking.boot.boot→com.simonking.boot
用户需要提供:
- 基础包:如
com.simonking(必填) - 项目名:
boot-skills(可选,不提供时自动获取当前工作目录名称) - 类类型:要创建的具体类(可选,不提供时只返回包结构)
- 优先级:用户提供的项目名 > 自动获取当前目录名
- 自动获取:当用户未提供项目名时,自动获取当前工作目录名称
- 目录名处理:目录名直接使用,无需转换(中划线转点号规则仍然适用)
当前工作目录:E:\JAVA_WORKSPACE\open-code\create-skills
| 用户输入 | 项目名 | 最终包路径 |
|---|---|---|
| 基础包: com.simonking | create-skills (自动获取) | com.simonking.create.skills |
| 基础包: com.simonking, 项目名: boot-skills | boot-skills (用户提供) | com.simonking.boot.skills |
基础包: com.simonking
项目名: boot-skills
com.simonking.boot.skills
├── com.simonking.boot.skills.constant
├── com.simonking.boot.skills.enums
├── com.simonking.boot.skills.dto
├── com.simonking.boot.skills.model
├── com.simonking.boot.skills.service
│ └── com.simonking.boot.skills.service.impl
├── com.simonking.boot.skills.util
├── com.simonking.boot.skills.controller
├── com.simonking.boot.skills.config
├── com.simonking.boot.skills.exception
├── com.simonking.boot.skills.mq
├── com.simonking.boot.skills.interceptor
├── com.simonking.boot.skills.filter
├── com.simonking.boot.skills.vo
└── com.simonking.boot.skills.mapper
输入:基础包 com.simonking,项目名 boot-skills,类类型 UserService
输出:com.simonking.boot.skills.service.UserService
输入:基础包 com.simonking,项目名 boot-skills,类类型 UserController, UserService, UserVO
输出:
UserController: com.simonking.boot.skills.controller.UserController
UserService: com.simonking.boot.skills.service.UserService
UserVO: com.simonking.boot.skills.vo.UserVO
- 获取项目名:
- 若用户提供项目名,使用用户提供的
- 若用户未提供,自动获取当前工作目录名称作为项目名
- 转换项目名格式(中划线转点,小写)
- 根据类类型确定目标包
- 拼接完整包路径
- 处理去重逻辑
- 输出结果
public String deduplicatePackage(String packagePath) {
String[] parts = packagePath.split("\\.");
List<String> result = new ArrayList<>();
for (String part : parts) {
if (result.isEmpty() || !result.get(result.size() - 1).equals(part)) {
result.add(part);
}
}
return String.join(".", result);
}示例:
com.simonking.boot.boot.skills→com.simonking.boot.skillscom.simonking.user.user.service→com.simonking.user.service
- 按需生成:只生成用户指定的类对应的包,不生成无关包
- 单复数:默认使用单数,冲突时自动切换复数
- 保持简洁:去重后的包路径应当简洁清晰
- 自动获取:用户未提供项目名时,自动使用当前工作目录名称
用户输入:
基础包:com.simonking
项目名:boot-skills
输出:
基础包路径: com.simonking.boot.skills
完整包结构:
- constant: com.simonking.boot.skills.constant
- enums: com.simonking.boot.skills.enums
- dto: com.simonking.boot.skills.dto
- model: com.simonking.boot.skills.model
- service: com.simonking.boot.skills.service
- service.impl: com.simonking.boot.skills.service.impl
- util: com.simonking.boot.skills.util
- controller: com.simonking.boot.skills.controller
- config: com.simonking.boot.skills.config
- exception: com.simonking.boot.skills.exception
- mq: com.simonking.boot.skills.mq
- interceptor: com.simonking.boot.skills.interceptor
- filter: com.simonking.boot.skills.filter
- vo: com.simonking.boot.skills.vo
- mapper: com.simonking.boot.skills.mapper
当前工作目录:E:\JAVA_WORKSPACE\open-code\create-skills
用户输入:
基础包:com.simonking
自动获取:
- 项目名:create-skills(从目录名自动获取)
- 转换后:create.skills
输出:
项目名: create-skills (自动获取当前目录名)
基础包路径: com.simonking.create.skills
完整包结构:
- constant: com.simonking.create.skills.constant
- enums: com.simonking.create.skills.enums
- dto: com.simonking.create.skills.dto
- model: com.simonking.create.skills.model
- service: com.simonking.create.skills.service
- service.impl: com.simonking.create.skills.service.impl
- util: com.simonking.create.skills.util
- controller: com.simonking.create.skills.controller
- config: com.simonking.create.skills.config
- exception: com.simonking.create.skills.exception
- mq: com.simonking.create.skills.mq
- interceptor: com.simonking.create.skills.interceptor
- filter: com.simonking.create.skills.filter
- vo: com.simonking.create.skills.vo
- mapper: com.simonking.create.skills.mapper
用户输入:
基础包:com.simonking
项目名:user-center
类:UserController, UserService, UserVO
输出:
项目包路径: com.simonking.user.center
包映射:
- UserController -> com.simonking.user.center.controller.UserController
- UserService -> com.simonking.user.center.service.UserService
- UserVO -> com.simonking.user.center.vo.UserVO
用户输入:
基础包:com.simonking
项目名:boot-boot
类:UserService
处理:
- 项目名转换:
boot-boot→boot.boot - 拼接:
com.simonking.boot.boot.service.UserService - 去重处理:
com.simonking.boot.service.UserService
输出:
最终包路径: com.simonking.boot.service.UserService
(已自动去重:boot.boot -> boot)
用户输入:
基础包:com.simonking
项目名:enum-test
类:StatusEnum
输出:
包路径: com.simonking.enum.test.enums.StatusEnum
(enum为关键字,自动使用复数形式enums)