There are Java project template that integrates next technologies:
- Spring Boot 2
 - Spring Data JPA
 - QueryDSL JPA
 - Liquibase
 - Postgres
 - MapStruct
 - Lombok
 - JUnit 5 + Integration Tests
 
To build the project it is require to use next command
gradlew clean buildTo build docker image it will require to use
docker build . -t app-templateTo run the project it is require to use docker-compose
docker-compose -f ./docker/docker-compose.yaml upTo run only project dependencies it is require to evaluate
docker-compose -f ./docker/docker-compose-deps.yaml upApplication provide next folder structure
src /itest /main /test Application provides next folders:
- itest - this folder contains integration tests
 - main - this folder contains application code
 - test - this folder contains JUnit 5 tests
 
Main application contains folder structure that represent (hexagonal architecture)
com.softeq.app .domain .services .config .adapters .api .jpa There are list of packages:
- domain - this folder contains domain model of the application and repository interfaces
 - services - this folder contains services of the application
 - config - current folder contains application configurations
 - adapters - current folder contains external services adapters
 
Project contains several base classes:
- AbstractITest - base integration test that configure context and rollback options for the tests
 - AbstractRepositoryImpl - base class for queryDsl based repositories
 
Gradle build support next options:
-PdisableIntegrationTests- this option allow to disable integration tests-PdisableJacoco- this options allow to disable code coverage checks
To build the code successfully it is required > 80% code coverage! This requirement automatically checked during build by JaCoCo plugin.
MIT