This module stores the build configuration for the application.
There are conventions configured for most use cases.
classDiagram
direction BT
class spotless-conventions
class kotlin-conventions
class java-conventions
class dependency-management
class integration-testing-conventions
class spring-app-conventions
class spring-module-conventions
class testing-conventions
class kotlin-testing-conventions
kotlin-testing-conventions --> testing-conventions
integration-testing-conventions --> testing-conventions
spring-app-conventions --> spring-module-conventions
spring-module-conventions --> dependency-management
dependency-management --> java-conventions
testing-conventions --> dependency-management
kotlin-conventions --> java-conventions
The Java conventions will set the language level and set up the annotation processor.
The Kotlin conventions will set up the Kotlin compiler to be compatible with Spring. It's based on Spring Initializr.
Will set up the BOM and the repositories for the project.
Will set up the integration testing configuration.
It will create a new scope: integrationTest
.
It's based on Gradle's documentation to set up integration tests.
Will set up the code formatter.
Will set up the testing configuration.
It will configure JUnit and Jacoco.
Set coverage to 100% and enforce the coverage.
There are a few exceptions to the coverage enforcement.
The coverage is enforced by the check
lifecycle.
There's always coverage reports generated after the tests are run.
Will set up the testing configuration for Kotlin. And set up dependencies for the Kotlin testing libraries.
Will set up dependency management and enforce spotless conventions.
Will set up aggregated jacoco and test reports.
It also enforces the module-conventions
.
It will pull in the org.springframework.boot
plugin to enable the bootJar
task.
It will enable the configuration processor and the devtools dependency.
The latter is only enabled in the developmentOnly scope.
It will also use the spring-boot-starter
dependency to autowire the dependencies.