jhipster
Generate modern web applications and microservices
TLDR
Generate a simple full-stack project (monolithic or microservices)
Generate a simple frontend project
Generate a simple backend project
Apply latest JHipster updates to the project
Add a new entity to a generated project
Import a JDL file to configure your application (see:
Generate a CI/CD pipeline for your application
Generate a Kubernetes configuration for your application
SYNOPSIS
jhipster <subcommand> [arguments] [options]
Common subcommands include:
jhipster generate [application-type] [options]
jhipster entity <entity-name> [options]
jhipster import-jdl <jdl-file> [options]
jhipster upgrade [options]
jhipster help [subcommand]
PARAMETERS
--help
Displays help information for the main command or a specific subcommand.
--version
Shows the current JHipster version.
--no-insight
Deactivates JHipster's anonymous usage insights.
--skip-install
(Commonly used with `generate`) Skips installing Node.js and Maven/Gradle dependencies after generation.
--skip-git
(Commonly used with `generate`) Skips initializing a Git repository.
--skip-cache
(Commonly used with `generate`) Skips Yeoman's generator cache, forcing all prompts.
--force
(Commonly used with `generate`) Overwrites existing files without prompting for confirmation.
DESCRIPTION
JHipster is a comprehensive development platform designed to rapidly generate, develop, and deploy modern web applications and microservices. It combines popular technologies like Spring Boot for the backend and Angular, React, or Vue.js for the frontend, providing a robust and opinionated full-stack development environment.
The platform leverages a suite of industry-standard tools including Yeoman for scaffolding, Webpack for frontend asset management, Maven or Gradle for build automation, and Liquibase for database versioning. JHipster offers a wide array of options during generation, supporting various application types (monolithic, microservices, gateway), authentication methods, database choices (SQL, NoSQL), and deployment targets (Docker, Kubernetes, Cloud Foundry, Heroku).
Its primary goal is to boost developer productivity by providing a ready-to-use application scaffold with common functionalities already implemented, such as user management, security, and REST APIs. This allows developers to focus predominantly on business logic, accelerating the development lifecycle from inception to deployment.
CAVEATS
JHipster is not a native Linux command; it is an application generator installed globally via npm.
Requires Node.js, npm/yarn, Java Development Kit (JDK), and a build tool like Maven or Gradle to be pre-installed on the system.
The generated applications are full-stack and can be extensive; deep customization may require familiarity with all underlying technologies.
Upgrading existing JHipster projects can sometimes be complex, though the jhipster upgrade subcommand assists in the process, manual adjustments may still be required.
Some commands (e.g., `generate`) are interactive by default, prompting the user for various configuration options.
INSTALLATION
The jhipster command-line tool is installed globally via npm (Node Package Manager). Ensure Node.js and npm are installed, then execute:
npm install -g generator-jhipster
This command makes the `jhipster` executable available in your system's PATH.
KEY CONCEPTS
Monolithic vs. Microservices: JHipster supports generating both traditional monolithic applications and complex microservice architectures, including gateways, microservices, and service registries.
JDL (JHipster Domain Language): A powerful, concise, and YAML-like language that allows developers to define applications, entities, relationships, and deployment configurations in a single file, which can then be imported using `jhipster import-jdl` to generate the code.
Module System: JHipster provides a vibrant module system, allowing the community to contribute and integrate various third-party tools, frameworks, and features into JHipster-generated applications.
HISTORY
JHipster was created by Julien Dubois and first open-sourced in 2013. Initially, it started as a simple Yeoman generator for Spring MVC and AngularJS. Over the years, it underwent significant evolution, integrating Spring Boot as the backend framework and expanding frontend options to include Angular, React, and Vue.js. The project's scope grew to support advanced architectures like microservices, diverse database systems (SQL and NoSQL), and various deployment strategies, including Docker and Kubernetes.
The core philosophy behind JHipster has always been to provide a comprehensive, opinionated, and community-driven solution to accelerate full-stack development, making it easier for developers to build modern web applications by focusing on business value rather than boilerplate configuration. It has cultivated a large and active global community that contributes to its ongoing development and ecosystem of modules.