You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否在JHipster中自定义包结构生成应用?附示例需求

在JHipster中自定义包结构与项目目录的实现方法

完全可行,JHipster支持通过基础配置、手动调整甚至自定义模板的方式实现自定义包结构和目录组织,下面针对新手给出两种实现思路和具体示例:

一、基础自定义(快速上手)

适合新手,通过初始化配置+手动调整就能实现需求,步骤如下:

1. 初始化项目时指定自定义根包

创建项目时,直接通过命令行参数指定你要的根包格式,比如要生成com.company.myproject.subproject的根包:

jhipster --package-name com.company.myproject.subproject

如果用交互式创建流程,在回答「Base package name」问题时输入上述包名即可。

2. 调整目录结构并修正包声明

JHipster默认生成domain、web/rest、service等目录,你可以手动调整为目标结构,同时修正对应文件的包声明:

  • 把默认domain目录下的实体类,移动到repository/entity目录,修改实体类的包声明为package com.company.myproject.subproject.repository.entity;,并同步修改Repository接口的导入路径。
  • 把默认web/rest下的控制器,移动到api/rest目录,修改包声明为package com.company.myproject.subproject.api.rest;。
  • 新建api/kafka目录,存放Kafka生产者/消费者类,包声明对应com.company.myproject.subproject.api.kafka;。
  • 把默认service下的DTO类移到service/dto,Mapper类移到service/dto/mapper,同步修改包声明和导入路径。

3. 生成新实体时直接指定目录

后续生成实体时,通过--entity-dir参数指定目标目录,避免重复手动移动:
比如生成Order实体到repository/entity目录:

jhipster entity Order --entity-dir repository/entity

生成的实体类会直接放在指定路径,包声明自动匹配。

二、进阶自定义(自动生成目标结构)

如果需要完全自动化生成自定义结构,不用每次手动调整,可以创建JHipster Blueprint(自定义模板包):

  1. 基于JHipster的模板框架,创建自己的npm包,替换默认的代码生成模板。
  2. 把实体、控制器、服务等模板的输出路径,修改为你需要的repository/entity、api/rest等结构。
  3. 使用自定义Blueprint生成项目,就能直接得到目标目录结构。
    注:Blueprint适合有一定Node.js基础的用户,新手建议先从基础自定义开始。

简短示例

假设要构建根包为com.example.shop.order的子项目,目标结构如下:

src/main/java/com/example/shop/order/
├── api/
│   ├── rest/
│   │   └── OrderResource.java
│   └── kafka/
│       └── OrderKafkaProducer.java
├── service/
│   ├── OrderService.java
│   ├── dto/
│   │   └── OrderDTO.java
│   └── dto/mapper/
│       └── OrderMapper.java
├── repository/
│   ├── OrderRepository.java
│   └── entity/
│       └── Order.java

实现步骤:

  1. 创建后端项目并指定根包:
jhipster --package-name com.example.shop.order --skip-client
  1. 生成Order实体并指定目录:
jhipster entity Order --entity-dir repository/entity --skip-client
  1. 手动将生成的OrderResource.java移到api/rest目录,修正包声明。
  2. 新建api/kafka目录,编写OrderKafkaProducer.java并设置对应包名。
  3. 新建service/dto和service/dto/mapper目录,移动OrderDTO.java和OrderMapper.java到对应路径,修正包声明和导入。
  4. 检查项目根类Application.java,默认会扫描根包下所有组件,无需额外修改。

内容的提问来源于stack exchange,提问作者Yardim Server

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 21:15:42