JHipster is a development platform to quickly generate, develop & deploy modern web applications & microservice architectures.
JHipster Lite will help you to start your project, by generating step by step only what you need.
- the generated code uses Hexagonal Architecture
- the technical code is separated from your business code
- you will only generate the code you want, no additional unused code
- best quality as possible: 💯% coverage, 0 code smell, no duplication 😎
Click on this button to deploy your own instance of JHipster Lite:
You need to have Java 17 :
- Node.js: we use Node to run a development web server and build the project. Depending on your system, you can install Node either from source or as a pre-packaged bundle.
After installing Node, you should be able to run the following command to install development tools.
npm ci
You will only need to run this command when dependencies change in package.json.
npm install
To launch tests:
./mvnw clean test
To launch tests and integration tests:
./mvnw clean verify
We use prettier and prettier-java to format our code.
To check format:
npm run prettier:check
To launch format all code:
npm run prettier:format
To launch local Sonar Analysis:
docker-compose -f src/main/docker/sonar.yml up -d
Then:
./mvnw clean verify sonar:sonar
So you can check the result at http://localhost:9001
You can run the project using Maven, as spring-boot:run
is the default target:
./mvnw
Or, first, you can package as jar:
./mvnw package
Then, run:
java -jar target/*.jar
So you can navigate to http://localhost:7471 in your browser.
You need to run the project first. Then, you can run the end-to-end tests:
npm run e2e
Or in headless mode:
npm run e2e:headless
Go to http://localhost:7471, select your option and generate the code you want, step by step, and only what you need.
If needed more advanced features, go to http://localhost:7471/swagger-ui.html and use your own JSON to generate the code you want. Here an example:
{
"folder": "/tmp/beer",
"generator-jhipster": {
"baseName": "beer",
"projectName": "Beer Project",
"packageName": "tech.jhipster.beer",
"serverPort": 8080
}
}
You can use the different existing APIs to:
- init the project
Then, for a Java project, you can add:
- Maven as Build Tool
- Gradle as Build Tool
- Java Base classes and Domain Error
List of optional tools for Java:
- ArchUnit tests
- JaCoCo configuration for minimum coverage
- Sonar configuration
Setup:
- GitHub Codespaces
- Gitpod
Spring Boot:
- Spring Boot as Server Framework
- Spring Boot Actuator
- Tomcat or Undertow as Spring Boot MVC
- Spring Security with JWT
- Basic Auth
- OAuth 2.0 and OIDC Authentication
- Spring Security with JWT
- AOP Logging
- Asynchronous execution and scheduling configuration
- Spring Cache
- Simple
- Ehcache
- Developer Tools
- Logstash TCP appender
- Springdoc without or with Security JWT
- Jib to build Docker image
Spring Boot Database:
- PostgreSQL, MySQL or MariaDB as Database
- Liquibase or Flyway as Database Migration Tool
- User and Authority tables (depending on Liquibase or Flyway)
- MongoDB as NoSQL Database
Spring Cloud:
- Eureka client
- Spring Cloud Config client
- Spring Cloud Consul
Broker:
- Apache Kafka
Client:
- Angular
- React with Vite
- Vue with Vite
Continuous Integration:
- GitHub Actions