This page documents gradle.properties — the single source of truth for all dependency versions, build performance tuning, and project-level metadata in the Spring Boot build. It explains what each property controls and how those values flow into the rest of the build.
For how versions propagate into the published BOM and become available to user projects, see Platform BOM and Dependency Versions. For how settings.gradle assembles subprojects using these properties, see Multi-Project Build Structure.
gradle.properties in the Buildgradle.properties is loaded automatically by Gradle before any build script executes. Because it is evaluated before settings.gradle and all build.gradle files, it is the appropriate place for values that must be consistent across the entire multi-project build.
In Spring Boot, gradle.properties serves three distinct roles:
| Role | Example properties |
|---|---|
| Project identity and release metadata | version, latestVersion, spring.build-type |
| Gradle daemon / build performance | org.gradle.caching, org.gradle.parallel, org.gradle.jvmargs |
| Dependency version pinning | springFrameworkVersion, kotlinVersion, tomcatVersion, … |
Sources: gradle.properties1-28
gradle.properties lines 1–3:
| Property | Current value | Meaning |
|---|---|---|
version | 4.1.0-SNAPSHOT | The version string stamped into every published artifact and POM. |
latestVersion | true | Flag consumed by documentation and release tooling to mark this as the latest active line. |
spring.build-type | oss | Distinguishes open-source from commercial builds; affects repository routing in CI. |
These three properties are read by the ConventionsPlugin layer (see ConventionsPlugin System) and by CI workflows (see GitHub Actions Workflows) to decide publication targets and changelog behavior.
Sources: gradle.properties1-3
org.gradle.caching=true
org.gradle.parallel=true
org.gradle.jvmargs=-Xmx3g -Dfile.encoding=UTF-8
| Property | Value | Effect |
|---|---|---|
org.gradle.caching | true | Enables the Gradle build cache. Task outputs are stored locally and in the remote Develocity cache, avoiding redundant work across CI agents. |
org.gradle.parallel | true | Allows independent subprojects to build concurrently, reducing wall-clock time on multi-core machines. |
org.gradle.jvmargs | -Xmx3g -Dfile.encoding=UTF-8 | Sets the Gradle daemon heap to 3 GB and forces UTF-8 encoding, which is needed for consistent Javadoc and source processing across platforms. |
These properties take effect for every Gradle invocation in the repository — local developer builds and all CI matrix runs alike.
Sources: gradle.properties5-7
All third-party and internal library versions are declared as simple name=value pairs. Downstream build scripts and the BOM plugin read these by name.
These versions govern the tools that Spring Boot's own build uses but are not part of the published BOM:
| Property | Version | Used by |
|---|---|---|
checkstyleToolVersion | 10.12.4 | JavaConventions — configures the Checkstyle tool dependency |
javaFormatVersion | 0.0.47 | Applied as a Checkstyle rule set via spring-javaformat |
mavenVersion | 3.9.10 | Maven plugin test harness |
nullabilityPluginVersion | 0.0.11 | Nullability annotation processing |
These properties flow through to spring-boot-dependencies/build.gradle (described in Platform BOM and Dependency Versions):
| Property | Version | Library |
|---|---|---|
springFrameworkVersion | 7.0.5 | Spring Framework (core platform dependency) |
springFramework60xVersion | 6.0.23 | Legacy compatibility artifacts |
tomcatVersion | 11.0.18 | Embedded Tomcat |
kotlinVersion | 2.3.10 | Kotlin compiler and runtime |
jackson2Version | 2.21.0 | Jackson Databind 2.x |
jacksonVersion | 3.0.4 | Jackson Databind 3.x |
assertjVersion | 3.27.7 | AssertJ (test) |
hamcrestVersion | 3.0 | Hamcrest (test) |
junitJupiterVersion | 6.0.3 | JUnit Jupiter (test) |
mockitoVersion | 5.21.0 | Mockito (test) |
graalVersion | 25 | GraalVM native image toolchain |
nativeBuildToolsVersion | 0.11.4 | GraalVM native build tools Gradle plugin |
commonsCodecVersion | 1.21.0 | Apache Commons Codec |
snakeYamlVersion | 2.5 | SnakeYAML |
Sources: gradle.properties9-26
kotlin.stdlib.default.dependency=false
This Kotlin-specific Gradle property disables automatic addition of the Kotlin standard library as a transitive dependency. Spring Boot manages the kotlin-stdlib version explicitly through the BOM instead of relying on the Kotlin Gradle plugin's auto-injection. This prevents version conflicts when user projects apply the Kotlin plugin alongside Spring Boot dependency management.
Sources: gradle.properties28
The following diagram maps the gradle.properties properties to the code entities that consume them.
Diagram: Version flow from gradle.properties to build outputs
Sources: gradle.properties1-28
Diagram: gradle.properties in the multi-project build lifecycle
Sources: gradle.properties1-28
| Property | Category | Notes |
|---|---|---|
version | Project identity | Stamped into all artifact versions |
latestVersion | Project identity | Docs/release tooling flag |
spring.build-type | Project identity | oss vs commercial routing |
org.gradle.caching | Build performance | Enables local + remote build cache |
org.gradle.parallel | Build performance | Enables parallel subproject builds |
org.gradle.jvmargs | Build performance | Daemon heap and encoding |
assertjVersion | Test dependency | AssertJ version |
checkstyleToolVersion | Build tool | Checkstyle enforcement |
commonsCodecVersion | Managed dependency | Apache Commons Codec |
graalVersion | Native image | GraalVM toolchain version |
hamcrestVersion | Test dependency | Hamcrest matchers |
jackson2Version | Managed dependency | Jackson 2.x Databind |
jacksonVersion | Managed dependency | Jackson 3.x Databind |
javaFormatVersion | Build tool | Spring Java Format Checkstyle rules |
junitJupiterVersion | Test dependency | JUnit Jupiter |
kotlinVersion | Managed dependency | Kotlin compiler and runtime |
mavenVersion | Build tool | Maven plugin test harness |
mockitoVersion | Test dependency | Mockito |
nativeBuildToolsVersion | Native image | GraalVM native build tools plugin |
nullabilityPluginVersion | Build tool | Nullability annotation plugin |
snakeYamlVersion | Managed dependency | SnakeYAML |
springFrameworkVersion | Core dependency | Spring Framework (current) |
springFramework60xVersion | Core dependency | Spring Framework 6.0.x compatibility |
tomcatVersion | Managed dependency | Embedded Tomcat |
kotlin.stdlib.default.dependency | Kotlin flag | Disables auto-injection of kotlin-stdlib |
Sources: gradle.properties1-28
Refresh this wiki