From 294d8fdc55ee638fb0f438811c3b499f767f69e1 Mon Sep 17 00:00:00 2001 From: Robert Stupp Date: Mon, 29 Jul 2024 18:11:19 +0200 Subject: [PATCH] Gradle tweaks * configure-on-demand * replace usages of deprecated Gradle APIs --- build.gradle | 17 +++++------------ polaris-core/build.gradle | 14 +++++--------- polaris-service/build.gradle | 23 +++++++++++++---------- 3 files changed, 23 insertions(+), 31 deletions(-) diff --git a/build.gradle b/build.gradle index 234f863ed..923a115eb 100644 --- a/build.gradle +++ b/build.gradle @@ -51,18 +51,13 @@ subprojects { apply plugin: "jacoco-report-aggregation" apply plugin: "groovy" - tasks.withType(JavaCompile) { + tasks.withType(JavaCompile).configureEach { options.compilerArgs << "-Xlint:unchecked" options.compilerArgs << "-Xlint:deprecation" } - project(":polaris-service") { - apply plugin: "application" - } - - project(":polaris-core") { - apply plugin: "java-library" - } + // Note: polaris-core seemed to be for Java 11, but uses functions that are introduced in later Java versions + tasks.withType(JavaCompile).configureEach { options.release = 21 } dependencies { implementation(platform(libs.jackson.bom)) @@ -80,11 +75,9 @@ subprojects { testRuntimeOnly("org.junit.platform:junit-platform-launcher") } - task format { - dependsOn "spotlessApply" - } + tasks.register("format").configure {dependsOn("spotlessApply") } - test { + tasks.named("test", Test).configure { useJUnitPlatform() } diff --git a/polaris-core/build.gradle b/polaris-core/build.gradle index 3d46fcce7..909854d38 100644 --- a/polaris-core/build.gradle +++ b/polaris-core/build.gradle @@ -20,11 +20,6 @@ plugins { id("java-test-fixtures") } -compileJava { - sourceCompatibility = 11 - targetCompatibility = 11 -} - dependencies { implementation(platform(libs.iceberg.bom)) implementation("org.apache.iceberg:iceberg-api") @@ -125,10 +120,10 @@ openApiValidate { inputSpec = "$rootDir/spec/polaris-management-service.yml" } -task generatePolarisService(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask) { +tasks.register("generatePolarisService", org.openapitools.generator.gradle.plugin.tasks.GenerateTask).configure { inputSpec = "$rootDir/spec/polaris-management-service.yml" generatorName = "jaxrs-resteasy" - outputDir = "$buildDir/generated" + outputDir = "$projectDir/build/generated" modelPackage = "io.polaris.core.admin.model" ignoreFileOverride = "$rootDir/.openapi-generator-ignore" removeOperationIdPrefix = true @@ -150,5 +145,6 @@ task generatePolarisService(type: org.openapitools.generator.gradle.plugin.tasks serverVariables = [basePath: "api/v1"] } -compileJava.dependsOn tasks.generatePolarisService -sourceSets.main.java.srcDirs += ["$buildDir/generated/src/main/java"] +tasks.named("compileJava").configure {dependsOn("generatePolarisService") } + +sourceSets.main.java.srcDirs += [ project.layout.buildDirectory.dir("generated/src/main/java") ] diff --git a/polaris-service/build.gradle b/polaris-service/build.gradle index 16c3e6951..5835ee4db 100644 --- a/polaris-service/build.gradle +++ b/polaris-service/build.gradle @@ -14,9 +14,12 @@ * limitations under the License. */ +import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar + plugins { alias(libs.plugins.shadow) alias(libs.plugins.openapi.generator) + id("application") } dependencies { @@ -92,7 +95,7 @@ dependencies { openApiGenerate { inputSpec = "$rootDir/spec/rest-catalog-open-api.yaml" generatorName = "jaxrs-resteasy" - outputDir = "$buildDir/generated" + outputDir = "$projectDir/build/generated" apiPackage = "io.polaris.service.catalog.api" ignoreFileOverride = "$rootDir/.openapi-generator-ignore" removeOperationIdPrefix = true @@ -148,10 +151,10 @@ openApiGenerate { ] } -task generatePolarisService(type: org.openapitools.generator.gradle.plugin.tasks.GenerateTask) { +tasks.register("generatePolarisService", org.openapitools.generator.gradle.plugin.tasks.GenerateTask).configure { inputSpec = "$rootDir/spec/polaris-management-service.yml" generatorName = "jaxrs-resteasy" - outputDir = "$buildDir/generated" + outputDir = "$projectDir/build/generated" apiPackage = "io.polaris.service.admin.api" modelPackage = "io.polaris.core.admin.model" ignoreFileOverride = "$rootDir/.openapi-generator-ignore" @@ -175,9 +178,9 @@ task generatePolarisService(type: org.openapitools.generator.gradle.plugin.tasks } compileJava.dependsOn tasks.openApiGenerate, tasks.generatePolarisService -sourceSets.main.java.srcDirs += ["$buildDir/generated/src/main/java"] +sourceSets.main.java.srcDirs += ["$projectDir/build/generated/src/main/java"] -test { +tasks.named("test", Test).configure { if (System.getenv("AWS_REGION") == null) { environment "AWS_REGION", "us-west-2" } @@ -186,29 +189,29 @@ test { maxParallelForks = 4 } -task runApp(type: JavaExec) { +tasks.register("runApp", JavaExec).configure { if (System.getenv("AWS_REGION") == null) { environment "AWS_REGION", "us-west-2" } classpath = sourceSets.main.runtimeClasspath mainClass = "io.polaris.service.PolarisApplication" - args "server", "$rootDir/polaris-server.yml" + args = ["server", "$rootDir/polaris-server.yml"] } application { mainClass = "io.polaris.service.PolarisApplication" } -jar { +tasks.named("jar", Jar) { manifest { attributes "Main-Class": "io.polaris.service.PolarisApplication" } } -shadowJar { +tasks.named("shadowJar", ShadowJar) { mainClassName = "io.polaris.service.PolarisApplication" mergeServiceFiles() zip64 true } -build.dependsOn(shadowJar) +tasks.named("build").configure { dependsOn("shadowJar") }