Java Tooling Standards
Priority: P2 (RECOMMENDED)
Standardized build and tooling configuration for consistent environments.
Implementation Guidelines
- •JDK Management: Use
.sdkmanrcor.java-versionto lock JDK versions (Target LTS: 17 or 21). - •Maven: Use
pom.xmlwith<dependencyManagement>for version control. Use wrapper (mvnw). - •Gradle: Prefer Kotlin DSL (
build.gradle.kts). Use version catalogs (libs.versions.toml). Use wrapper (gradlew). - •Linter: Use Spotless or Checkstyle (Google Style) to enforce formatting.
- •Static Analysis: Integrate SpotBugs or SonarLint for deeper issue detection.
- •Docker: Use multi-stage builds. Use
eclipse-temurinordistrolessimages.
Anti-Patterns
- •Global Installs: Relying on system Maven/Gradle. Always use wrappers.
- •Fat Jars: Avoid massive uber-jars if possible; prefer layered Docker images for caching.
- •Snapshot Dependencies: Do not rely on
-SNAPSHOTversions in production builds.
Code
kotlin
// build.gradle.kts (Gradle Kotlin DSL)
plugins {
java
id("com.diffplug.spotless") version "6.23.3"
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(21))
}
}
spotless {
java {
googleJavaFormat()
}
}
Related Topics
language | best-practices | testing