diff --git a/build.gradle b/build.gradle index 4d788a0a57..9638261cc2 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,5 @@ plugins { + alias(libs.plugins.buildconfig) apply false alias(libs.plugins.equo.ide) alias(libs.plugins.test.logger) apply false alias(libs.plugins.spotless.changelog) apply false diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 03a754fa9a..e3c7e3e7f7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -66,6 +66,7 @@ rewrite-recipe-third-party = "org.openrewrite.recipe:rewrite-third-party:0.40.1" errorprone-core = "com.google.errorprone:error_prone_core:2.42.0" [plugins] +buildconfig = "com.github.gmazzo.buildconfig:6.0.10" test-logger = "com.adarshr.test-logger:4.0.0" spotless = "com.diffplug.spotless:8.10.0" spotless-changelog = "com.diffplug.spotless-changelog:3.1.2" diff --git a/lib/build.gradle b/lib/build.gradle index bd372a3d3f..ccf1f2921e 100644 --- a/lib/build.gradle +++ b/lib/build.gradle @@ -2,6 +2,7 @@ import org.gradle.util.GradleVersion plugins { id 'java-library' + id 'com.github.gmazzo.buildconfig' id 'io.github.davidburstrom.version-compatibility' } ext.artifactId = project.artifactIdLib @@ -9,6 +10,16 @@ version = rootProject.spotlessChangelog.versionNext apply from: rootProject.file('gradle/java-setup.gradle') apply from: rootProject.file('gradle/java-publish.gradle') +buildConfig { + packageName('com.diffplug.spotless.java') + useJavaOutput { + defaultVisibility = true + } + buildConfigField(String, 'VERSION_GJF', libs.google.java.format.map { + it.versionConstraint.requiredVersion + }) +} + def NEEDS_GLUE = [ // (alphabetic order please) 'cleanthat', diff --git a/lib/src/main/java/com/diffplug/spotless/java/GoogleJavaFormatStep.java b/lib/src/main/java/com/diffplug/spotless/java/GoogleJavaFormatStep.java index ff40fc0d6d..079955a731 100644 --- a/lib/src/main/java/com/diffplug/spotless/java/GoogleJavaFormatStep.java +++ b/lib/src/main/java/com/diffplug/spotless/java/GoogleJavaFormatStep.java @@ -123,7 +123,7 @@ private static FormatterStep createInternally(String name, String groupArtifact, .addMin(21, "1.17.0") // java 21 requires at least 1.17.0 due to https://github.com/google/google-java-format/issues/898 .addMin(25, "1.30.0") // import module (JEP 511) requires google-java-format >= 1.30.0 (https://github.com/google/google-java-format/issues/1213) .add(17, "1.28.0") // last version compatible with JDK 17 (1.30.0 references JCAnyPattern, JDK 21+ only) - .add(21, "1.30.0"); // default on JVM 21+ (1.30.0+ handles `import module` in RemoveUnusedImports on JVM 25+) + .add(21, BuildConfig.VERSION_GJF); // default on JVM 21+ (1.30.0+ handles `import module` in RemoveUnusedImports on JVM 25+) public static String defaultGroupArtifact() { return MAVEN_COORDINATE;