This template provides a reference implementation of a typical task management system, which can be examined and converted into a base for developing a real-world enterprise project.
Gradle 7.4
is used as a build and task execution system.
Key features:
- Gradle Wrapper
- The recommended way to version the build system itself.
- Kotlin language for build scripts
- Advanced editing experience.
- Java Toolchains
- Control of used JDK vendors and distributions.
- Binding tasks to specific Java version.
- Special custom plugins
- Optimized test-driven development.
- Mutation testing setup.
- Small modules
- Easy to compose and replace.
- Best for parallel task execution and execution plan optimization.
- Friendly for the build cache.
Java 17 is used as the main language.
Implementation features:
- Java Platform Module System (JPMS) is used for all non-test modules.
Git 2.35.1
is used to manage the codebase and releases. Release versions adheres to calendar versioning.
This project demonstrates the use of several types of automated tests:
- Microtests for the main logic
- Heavily involved in the main cycle of test driven development.
- Mostly use detached datasets shared across the team.
- Basic environment tests to verify development process
- Intended to be launched either at the beginning of work on a project or after changing the system configuration.
- Code coverage reporting
- Per module and aggregated.
- Mutation testing to check tests quality
- Only for core modules with critical business logic.
See the FAQ for the answers to commonly asked questions.
All notable changes to this project are documented in CHANGELOG using the format suggested by the keep a changelog project.