Skip to content

Commit acb17f7

Browse files
authored
Set min Gradle requirement via GradlePluginApiVersion attribute (#1176)
https://www.liutikas.net/2025/10/15/Gradle-Version-Checking.html
1 parent 0359a96 commit acb17f7

File tree

4 files changed

+13
-6
lines changed

4 files changed

+13
-6
lines changed

gradle/libs.versions.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
[versions]
22
jdkRelease = "11"
3+
minGradle = "8.13"
34

45
gradle = "9.1.0"
56

plugin/build.gradle.kts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import org.gradle.api.plugins.JavaPlugin.API_ELEMENTS_CONFIGURATION_NAME
2+
13
plugins {
24
id("shared")
35
id("java-gradle-plugin")
@@ -32,6 +34,14 @@ val integrationTestSourceSet = sourceSets.create("integrationTest") {
3234
val integrationTestImplementation = configurations["integrationTestImplementation"]
3335
.extendsFrom(configurations.testImplementation.get())
3436

37+
configurations.named(API_ELEMENTS_CONFIGURATION_NAME) {
38+
attributes.attribute(
39+
// TODO: https://github.com/gradle/gradle/issues/24608
40+
GradlePluginApiVersion.GRADLE_PLUGIN_API_VERSION_ATTRIBUTE,
41+
objects.named(libs.versions.minGradle.get()),
42+
)
43+
}
44+
3545
buildConfig {
3646
packageName("com.vanniktech.maven.publish")
3747
buildConfigField("String", "NAME", "\"com.vanniktech.maven.publish\"")
@@ -62,6 +72,7 @@ buildConfig {
6272
.asProvider()
6373
.get(),
6474
)
75+
buildConfigField("GRADLE_MIN", libs.versions.minGradle)
6576
buildConfigField(
6677
"ANDROID_GRADLE_ALPHA",
6778
alpha.versions.android.gradle

plugin/src/integrationTest/kotlin/com/vanniktech/maven/publish/TestOptions.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ enum class GradleVersion(
8080
) {
8181
// minimum supported
8282
GRADLE_MIN(
83-
value = "8.13",
83+
value = Versions.GRADLE_MIN,
8484
firstUnsupportedJdkVersion = JavaVersion.VERSION_24,
8585
),
8686

plugin/src/main/kotlin/com/vanniktech/maven/publish/MavenPublishBasePlugin.kt

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package com.vanniktech.maven.publish
33
import org.gradle.api.Plugin
44
import org.gradle.api.Project
55
import org.gradle.api.publish.maven.plugins.MavenPublishPlugin as GradleMavenPublishPlugin
6-
import org.gradle.util.GradleVersion
76

87
public abstract class MavenPublishBasePlugin : Plugin<Project> {
98
override fun apply(project: Project) {
@@ -15,9 +14,6 @@ public abstract class MavenPublishBasePlugin : Plugin<Project> {
1514
}
1615

1716
private fun Project.checkMinimumVersions() {
18-
if (GradleVersion.current() < MIN_GRADLE_VERSION) {
19-
error("You need Gradle version $MIN_GRADLE_VERSION or higher, was ${GradleVersion.current()}")
20-
}
2117
plugins.withId("com.android.library") {
2218
if (!isAtLeastUsingAndroidGradleVersion(8, 0, 0)) {
2319
error("You need AGP version 8.0.0 or newer")
@@ -41,7 +37,6 @@ public abstract class MavenPublishBasePlugin : Plugin<Project> {
4137
}
4238

4339
private companion object {
44-
val MIN_GRADLE_VERSION: GradleVersion = GradleVersion.version("8.13")
4540
val KOTLIN_PLUGIN_IDS = listOf(
4641
"org.jetbrains.kotlin.jvm",
4742
"org.jetbrains.kotlin.multiplatform",

0 commit comments

Comments
 (0)