- 新项目从零到能跑通登录、数据库、前端路由:生成器把 Spring Security、Flyway/Liquibase、前端构建链一次配齐,手写这些配置通常要花几天
- 需要同时维护单体与微服务两套形态:同一套实体定义可以生成 monolith 或 gateway + registry + 多个 service,换别的脚手架通常只覆盖其中一种
- 团队里前后端技术栈不统一:Angular/React/Vue 三选一,生成后是标准工程结构,不需要为脚手架保留特殊约定
- 需要把生成物纳入 CI 与容器交付:生成时直接产出 Dockerfile、compose 文件与 k8s 描述,省掉从零编写部署描述的工作
generator-jhipster
jhipsterApache-2.0活跃维护 有专家点评用 Yeoman 生成器一键搭建 Spring Boot + Angular/React 的现代 Web 应用和微服务架构,自动配好 Docker、Kubernetes 和云部署配置。
JHipster is a development platform to quickly generate, develop, & deploy modern web applications & microservice architectures.
专家点评
上手难度:进阶更新于 2026-11-11用 Yeoman 生成 Spring Boot 全栈骨架,把脚手架、认证、Docker 编排一次性铺好
适用场景
踩坑
- 在别人给的仓库上跑生成器前先看 .yo-rc.json:里面声明的 blueprint 会在本机执行,等于信任该文件作者,README 明确提到这个信任模型
- Java 与 Node 版本组合有硬约束(README 给的是 Java 21/25、Node 22/24),版本不匹配时问题往往表现为生成中途失败而非清晰报错,本地多版本环境要先切好
- 生成后代码归你维护,但升级 JHipster 大版本时重新生成与手改代码的合并是长期成本;issue 列表里前端框架与架构方向的讨论长期占据高反应位,说明主线选型会随版本变动,锁定版本比追新更稳
同类对比
Spring Initializr 只解决 Spring Boot 骨架,不含前端与部署编排;若只需要后端起步,用前者更轻。微服务侧若已确定用 Kubernetes Operator 或服务网格管理,JHipster 生成的 registry/gateway 那套需要评估是否重复。
项目说明
由 README 自动翻译提炼JHipster 是快速生成、开发和部署现代 Web 应用与微服务架构的开发平台
用 Yeoman 生成器一键搭建 Spring Boot + Angular/React 的现代 Web 应用和微服务架构,自动配好 Docker、Kubernetes 和云部署配置。
核心能力
- 用生成器一键搭建 Web 应用与微服务项目骨架
- 支持 Angular、React、Vue 三种前端框架
- 支持 Maven 与 Gradle 构建、SQL 与 NoSQL 数据库
- 覆盖单体与微服务架构,含 JWT 与 OAuth 2.0 认证
- 提供 Docker 镜像与 Elasticsearch 等集成方案
容易踩的坑
需搭配 Java 21/25 与 Node 22/24 使用,版本组合经 CI 验证;在非自己编写的项目上运行前,需了解 .yo-rc.json 的信任模型,其中声明的 blueprint 会在本机执行;完整文档需访问官网 www.jhipster.tech
- v9.4.0最新正式版2026-09-18 · 2026-09-18 02:04 UTC
What's changed
This release adds Playwright support! 🥳
You can now generate end-to-end tests with Playwright as an alternative to Cypress. The specs are a line-by-line port of the Cypress ones, with the same files, test titles, and
data-cylocators so that you can compare the two suites side by side.This release also finishes the move away from webpack. Angular microfrontends now use Native Federation on top of the esbuild-based Angular CLI builder, and webpack is gone from Angular and Vue apps (React switched to Vite in 9.3.0). On the backend, we reimplemented R2DBC repositories, and Liquibase now supports Cassandra.
🌟 Highlights
🎭 Playwright
- Playwright is now a supported e2e test framework, selectable through
testFrameworksalongside Cypress. Entity specs are generated too, including the bootstrap of required relationships - Angular apps register the
playwright-ng-schematicsbuilder, song e2edrives the dev server - Porting the assertions surfaced two application bugs that Cypress had hidden, and both are fixed
🖥️ Frontend
- Angular microfrontends are now built with esbuild and Native Federation (
@angular-architects/native-federation) instead of webpack Module Federation, and Angular's webpack templates are gone - Vue dropped webpack support, so Vue apps build with Vite or Rsbuild
- Angular entities can now be created with a user-provided ID, stored blobs open as a download unless the content type is allowed, and React production bundles have smaller chunks
- Lots of Bootstrap 5 cleanup across Angular and Vue templates, along with i18n placeholder fixes and removal of unused translation keys
🍃 Spring Boot and data
- R2DBC repositories were reimplemented on top of Spring Data repositories with Criteria, using the CriteriaBuilder from jhipster-framework
- Liquibase now supports Cassandra and is enabled by default, so schemas no longer need a separate Docker image outside the application
- Fixes for build errors on OAuth2 gateways without a database, tests deleting every User record, incremental Liquibase changelogs for MapStruct expression fields, and the Spring Boot error page showing a duplicated error instead of the HTTP status
🔒 Security hardening
- yeoman-generator v9 throws when a template or destination path resolves outside the generator root, so write operations outside the project are now controlled
--disable-blueprintsalso disables local.blueprintdirectories, which matters for CI and JHipster Online running against untrusted checkouts
🧰 Generator and blueprints
- A new
jhipster describecommand gives you a queryable, machine-readable catalog of commands, options, prompts, and config owners - A new [
--export-applicationoption](https://github.com/jhipster/generat
- Playwright is now a supported e2e test framework, selectable through
- v9.3.02026-08-30 · 2026-08-30 23:10 UTC
查看更新说明
What's changed
JHipster 9.3.0 goes all-in on Spring Boot 4! Support for Spring Boot 4 first arrived in 9.0.0, and this release completes the migration: Spring Boot 3 and Jackson 2 support are gone, and every generated application now runs on Spring Boot 4.1. Josh Long asked us about this back in July, so consider this our answer. 😄
Beyond the backend, Angular apps move to Angular 22, React apps now build with Vite, and backend integration tests use Testcontainers ServiceConnection across the board.
🌟 Highlights
🍃 Spring Boot 4
- Generated applications are now Spring Boot 4 only, with Spring Boot 3 support dropped and Jackson 2 support removed; Spring Boot itself moves to 4.1.1
- Relational databases with WebFlux (R2DBC) and Couchbase finished their migration from Spring Boot 3 to 4.1
- Integration tests now use Testcontainers ServiceConnection for relational databases, Couchbase, Elasticsearch, Neo4j, Cassandra, MongoDB, and Kafka
- SecurityUtils no longer returns anonymousUser and LoggingAspect gains reactive support
🖥️ Frontend
- Angular apps are generated with Angular 22, which enables OnPush change detection and strictTemplates by default, plus a broader migration to signals
- React apps now build with Vite instead of webpack
- Angular's webpack module federation migrated to @module-federation/enhanced, monoliths and gateways now load entities through module federation, and user management screens are generated from the shared entity templates
- Notable fixes include static resource loading on deep client-side routes, OAuth2 post-login redirects hijacked by websocket polling, embedded many-to-one relationships in React and Vue, and blank parent columns in Vue entity lists
📦 Toolchain updates
- Build tooling moved to Node.js 24.20.0, npm 12, and Gradle 9.7.1
- GraalVM native image support got a PropertyFilter resolution fix and generated CI/CD pipelines gained GraalVM workflow support
📊 By the numbers
- 669 closed issues and pull requests since [9.2
- v9.2.02026-07-10 · 2026-07-10 15:01 UTC
查看更新说明
What's changed
JHipster 9.2.0 is a polish release for v9. It focuses on finishing the move to Vitest on the frontend, tightening generated backend security and validation, fixing a few high-impact generation bugs, and continuing the TypeScript and template cleanup across the generator.
🌟 Highlights
🧩 Templates and internal improvements
- Our 3000+ EJS templates are now checked and formatted by eslint
- Improved blueprint generation and internals with stronger generate-blueprint typing and compatibility, reworked bootstrap generator composition, and MemFsEditorFile integration
🍃 Spring Boot and security
- Upgraded to Spring Boot 4.0.7 and improved generated backend hardening with a safer AccountResource
- An application generation fix restores initial project generation without requiring
--forcein the affected scenarios - Reactive generated entities avoid negative
BigDecimalscales (#33751) and Neo4j samples add BlockHound customization (#33816)
🖥️ Frontend
- Vitest is now the only generated frontend test framework, with Jest removal from client choices and Angular cleanup of leftover Jest conditionals
- Generated frontend behavior is more reliable across frameworks with PUT support for entities without autogenerated IDs, a React entity creation fix, and a Vue Boolean field rendering fix
- Vue webpack microservice samples now use Vite, and the selected auth option is preserved when generating client apps with
--skip-server
📦 Toolchain updates
- Build tooling moved to Node 24.18.0, Gradle 9.6.1, and webpack-dev-server 6
- Supporting dependencies moved to Spring Cloud 2025.1.2, Prettier 3.9.3, GraalVM reachability metadata 1.0.5, and ngx-translate 18
📊 By the numbers
- 515 closed issues and pull requests since 9.1.0 (full list)
- 7 human contributors helped ship this release
- Toolchain updates include Spring Boot 4.0.7, Node.js 24.18.0, Gradle 9.6.1, and webpack-dev-server 6
🔧 More changes
🔧 Core generator, testing, and code quality
- Sonar: Replace this fixed wait with a synchronization on an observable condition (#34033) @qmonmert
- chore(deps): update dependency graalvm-reachability-metadata to v1.0.5 (#34026) @renovate[bot]
- Simplify EJS templates (#33973) @qmonmert
- ESLint: enable and configure
@typescript-eslint/no-unused-vars(#34004) @qmonmert
- v9.1.02026-05-27 · 2026-05-27 18:02 UTC
查看更新说明
What's changed
🌟 Highlights
🍃 Spring Boot and security
- Spring Boot 4.0.6 (#33553) - latest Spring Boot version for generated applications
- Configuration sanitization for hardening (#32708) - tighter handling of generated configuration
- JWT credentials fix (#33479) - fixes
SecurityUtils.getCurrentUserJWTfor JWT credentials
🅰️ Angular
- OnPush change detection everywhere (#33218) - all generated components now use
ChangeDetectionStrategy.OnPush - Rewritten service worker provider (#33329) - cleaner service worker setup in generated apps
- SSR-safe html lang updates (#33330) - uses
inject(DOCUMENT)for server-safe language updates
⚛️ React
- Jest to Vitest migration (#33200) - generated React apps now use Vitest
- react-top-loading-bar (#33039) - replaces
react-redux-loading-bar - User management reducer fix (#33555) - fixes
errorMessagehandling
🟩 Vue
- @module-federation/vite (#33283) - Vue microfrontends now use the Vite integration
- rsbuild microfrontends by default (#33455) - rsbuild is now the default for generated Vue microfrontends
- Gateway resources through module federation (#33485) - exposes and loads gateway resources through module federation
- Stale auth token cleanup (#33503) - removes outdated authentication tokens from storage
🧩 Internal improvements
- Improved TypeScript support (#33332, #33096) - each generator exports its own types, and new blueprints are generated in TypeScript
- CI/CD generator split (#33398, #33388) - moves commands into
ci-cdandci-cd:common - Typed generator utilities (#33352, #33351, #33391) - more typed helpers and better
writeFilesinference
🤖 AI and generator workflow
- AGENTS.md and AI assistant disclosure policy (#33130) - documents expectations for AI-assisted contributions
📊 By the numbers
- 878 closed issues and pull requests since 9.0.0 (full list)
- Toolchain updates include Node.js 24.16.0, Gradle 9.5.1, and Maven 3.9.16
🔧 More changes
🔧 Core generator and templates
- Fix CLI filename:
cli/jhipster.cjs(#33526) @qmonmert - TextBlob fake data not loading properly (#33523) [@qmonmert](https://githu
- v9.0.02026-03-11 · 2026-03-11 04:40 UTC
查看更新说明
We're pumped to announce the official release of JHipster 9.0.0! 🎉
Highlights
- Spring Boot 4 support
- React 19 with react-bootstrap (replacing reactstrap)
- Angular 21 with zoneless by default, Vitest support, and signals migration
- Vue with Bootstrap 5 (Bootstrap Vue Next)
- GraalVM native image support
- Java 21 minimum required (dropped Java 17)
- Node 22 minimum required (dropped Node 20)
- Complete TypeScript rewrite of the generator codebase
Thanks to our amazing community for all the feedback during the beta releases!
What's Changed
🍃 Spring Boot
- spring-boot: re-add in-memory user credentials to application config (#32282) @mshima
- spring-boot: fix sonar properties (#32253) @mshima
- spring-boot: re-add application-tls to sonar ignored rule (#32235) @mshima
- spring-boot: move oauth2 configuration to secret-samples (#32550) @mshima
- spring-boot: move sensitive data to application-secret-samples.yml (#32218) @mshima
- Add default user and admin credentials to application properties (#32389) @mshima
- fix(kubernetes): generate Helm 3-only apply script and docs (#32494) @yuliuyi717-ux
- kafka: don't start kafka in backend tests (#32388) @mshima
- kafka: split kafka configuration (#32090) @mshima
🖥️ Frontend
- feat(react): upgrade to React 19 and replace reactstrap with react-bootstrap (#32495) @sreeshanth-soma
- [React] Fix duplicate exports (#32642) @qmonmert
- [React] React Bootstrap: remove invalid prop 'navbar' (#32583) @qmonmert
- [React] Upgrade react-router (#32404) @qmonmert
- [React] Remove lodash (#32416) @qmonmert
- [React] Remove redux-mock-store (#32401) @qmonmert
- [React] Remove Loadable (#32398) @qmonmert
- [React] ESLint: Fix no-useless-escape rule (#32331) @qmonmert
- [Vue] 'any' overrides all other types in this union type (#32628) @qmonmert
- [Vue] ESLint 10 (#32368) @qmonmert
- [Vue] Remove numeral dependency (#32439) @qmonmert
- [Vue] Remove flush-promises dependency (#32438) @qmonmert
- [Angular] Bump ESLint 10 (#32582) @qmonmert
- angular: fix UserManagement menu translation (#32622) @mshima
- angular: move resource error handling to the service and replace authorities from UserManagement service (#32616) @mshima
- angular: use entities templates in UserManagement routes (#32597) @mshima
- fix(angular): prevent code injection via JDL pattern in generated TypeScript (#32601) @Mistz1
- [Angular] Use arrow functions directly in templates (#32614) @qmonmert
- [Angular] Fix: Prefer globalThis over window (#32608) @qmonmert
- [Angular] Remove withInterceptorsFromDi (#32609) @qmonmert
- angular: simplify entity service api (#32592) @mshima
- angular: convert filterOptions to signal (#32460) @mshima
- angular: fix resource in error state (#32459) @mshima
- angular: migrate entity list to httpResource based service (#32373) @mshima
- angular: simplify account service (#32360) @mshima
- [Angular] Imports specific components and not all NgbModule (#32443) @qmonmert
- [Angular] Remove unused dependency: @angular/platform-browser-dynamic (#32418) @qmonmert
- [Angular] Remove unused dependency: buffer (#32417) @qmonmert
- [Angular] Remove ChangeDetectorRef, not useful with Signals (#32437) @qmonmert
- [Angular] Remove enableProdMode (#32497) @qmonmert
- client: add getPageNumberFromLinkHeader and parseLinkHeader to common (#31865) @mshima
- client: fix translation when executing entity command (#32314) @mshima
🧪 Cypress
- cypress: fix coverage (#32415) @mshima
- cypress: add type to username and password variables (#32414) @mshima
- cypress: credentials adjusts (#32338) @mshima
- cypress: disable cypressAudit by default (#32312) @mshima
- cypress: replace nested get with find, get always traverses from root (#32600) @mshima
- cypress: enable UserManagement for React and Vue (#32538) @mshima
- cypress: enable tests for UserManagement entity (#32419) @mshima
- Fix: Cypr
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
Greetings, Java Hipster!
Full documentation and information is available on our website at https://www.jhipster.tech.
Please read our guidelines before submitting an issue. If your issue is a bug, please use the bug template pre-populated here. For feature requests and queries you can use this template. If you have found a potential security issue, please read our security policy and contact us privately first: https://github.com/jhipster/generator-jhipster/security/policy
Before running the generator on a project you did not author, read the trust model of .yo-rc.json: the file's properties become part of the generated application, and blueprints declared in it are executed on your machine.
Contributing
We are honored by any contributions you may have, small or large. Please refer to our contribution guidelines and instructions document for any information about contributing to the project.
Supported Java and Node versions
The following Java and Node combinations are tested and verified by GitHub Actions:
| Java | Node | Status |
|---|---|---|
| 21/25 | 22/24 | ✅ |
Sponsors
Support this project by becoming a sponsor! Become a sponsor or learn more about sponsoring the project.
Thank you to our sponsors!
Gold sponsors
Bronze sponsors
Backers
Thank you to all our backers!
Daily Builds
Additional builds at hipster-labs/jhipster-daily-builds
| Pipeline Status |
|---|
