From 57258a3183061bb663c36a07224ac5cc42063354 Mon Sep 17 00:00:00 2001 From: Fuxiang Luo Date: Fri, 27 Mar 2026 13:28:09 +0800 Subject: [PATCH] Fix Gradle 9.4 compatibility issues - Replace io.franzbecker:gradle-lombok plugin (uses removed setMain() API) with a plain JavaExec delombok task using mainClass.set() - Add junit-platform-launcher to testRuntimeOnly classpath, required by Gradle 9 for JUnit Platform test execution --- buildSrc/build.gradle | 2 +- .../groovy/local-s3.java-conventions.gradle | 1 + .../src/main/groovy/local-s3.publish.gradle | 23 ++++++++++++++----- gradle/libs.versions.toml | 2 ++ 4 files changed, 21 insertions(+), 7 deletions(-) diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index 9ad4d02..c33efb9 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -9,7 +9,7 @@ repositories { dependencies { implementation 'com.robothy:cn-repo:1.8' - implementation 'io.franzbecker:gradle-lombok:5.0.0' + //implementation 'io.franzbecker:gradle-lombok:5.0.0' implementation 'org.danilopianini:publish-on-central:9.1.13' //testImplementation 'org.spockframework:spock-core:1.3-groovy-2.5' } diff --git a/buildSrc/src/main/groovy/local-s3.java-conventions.gradle b/buildSrc/src/main/groovy/local-s3.java-conventions.gradle index 2d4aa8a..9a74399 100644 --- a/buildSrc/src/main/groovy/local-s3.java-conventions.gradle +++ b/buildSrc/src/main/groovy/local-s3.java-conventions.gradle @@ -28,6 +28,7 @@ dependencies { testImplementation(libs.mockitoCore) testImplementation(libs.junit5JupiterEngine) testImplementation(libs.junit5) + testRuntimeOnly(libs.junitPlatformLauncher) } test { diff --git a/buildSrc/src/main/groovy/local-s3.publish.gradle b/buildSrc/src/main/groovy/local-s3.publish.gradle index be256bc..553817e 100644 --- a/buildSrc/src/main/groovy/local-s3.publish.gradle +++ b/buildSrc/src/main/groovy/local-s3.publish.gradle @@ -1,10 +1,7 @@ -import io.franzbecker.gradle.lombok.task.DelombokTask - import java.nio.file.Files plugins { id 'maven-publish' - id 'io.franzbecker.gradle-lombok' id 'signing' id 'local-s3.central-portal' } @@ -76,12 +73,26 @@ publishing { } -task delombok(type: DelombokTask, dependsOn: compileJava) { +task delombok(type: JavaExec, dependsOn: compileJava) { ext.outputDir = project.layout.buildDirectory.dir("delombok").get() outputs.dir(outputDir) + mainClass.set('lombok.launch.Main') + classpath = configurations.annotationProcessor sourceSets.main.java.srcDirs.each { - inputs.dir(it) - args(it, "-d", outputDir) + if (it.exists()) { + inputs.dir(it) + } + } + doFirst { + outputDir.asFile.mkdirs() + def argList = ['delombok'] + sourceSets.main.java.srcDirs.each { + if (it.exists()) { + argList += [it.absolutePath] + } + } + argList += ['-d', outputDir.asFile.absolutePath] + args = argList } } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index f8705f6..502dafe 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,6 +9,7 @@ apacheCommonsCollections4 = "4.5.0" commonsIo = "2.21.0" apacheCommonsLang3 = "3.20.0" junit5 = "5.11.4" +junitPlatform = "1.11.4" mockito = "5.21.0" lombok = "1.18.44" slf4j = "2.0.17" @@ -33,6 +34,7 @@ apacheCommonsCollections4 = { group = "org.apache.commons", name = "commons-coll commonsIo = { group = "commons-io", name = "commons-io", version.ref = "commonsIo" } apacheCommonsLang3 = { group = "org.apache.commons", name = "commons-lang3", version.ref = "apacheCommonsLang3" } junit5 = { group = "org.junit.jupiter", name = "junit-jupiter", version.ref = "junit5" } +junitPlatformLauncher = { group = "org.junit.platform", name = "junit-platform-launcher", version.ref = "junitPlatform" } junit5JupiterEngine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junit5" } #mockitoInline = { group = "org.mockito", name = "mockito-inline", version.ref = "mockito" } mockitoCore = { group = "org.mockito", name = "mockito-core", version.ref = "mockito" }