From 9b30221d7513c37c723660f8561eb435976954d1 Mon Sep 17 00:00:00 2001 From: Aaron J Todd Date: Thu, 1 Apr 2021 10:19:17 -0400 Subject: [PATCH] fix: explicitly set jvm target compatibility Explicilty set the java source/target compatibility so that the outgoing gradle variant metadata isn't inferred from the JVM version gradle is running with. see: https://docs.gradle.org/current/userguide/variant_attributes.html#sub:jvm_default_attributes fixes: https://github.com/awslabs/smithy-kotlin/issues/258 --- services/build.gradle.kts | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/services/build.gradle.kts b/services/build.gradle.kts index 6c83a17f49d..13430aea6c6 100644 --- a/services/build.gradle.kts +++ b/services/build.gradle.kts @@ -5,7 +5,7 @@ */ plugins { kotlin("jvm") - `maven` + maven `maven-publish` id("org.jetbrains.dokka") } @@ -43,6 +43,18 @@ subprojects { } } + + // this is the default but it's better to be explicit (e.g. it may change in Kotlin 1.5) + tasks.compileKotlin { + kotlinOptions.jvmTarget = "1.6" + } + tasks.compileTestKotlin { + kotlinOptions.jvmTarget = "1.6" + } + + // FIXME - we can remove this when we implement generated services as multiplatform. + setOutgoingVariantMetadata() + val sourcesJar by tasks.creating(Jar::class) { group = "publishing" description = "Assembles Kotlin sources jar" @@ -65,3 +77,13 @@ subprojects { apply(from = rootProject.file("gradle/publish.gradle")) } + + +// fixes outgoing variant metadata: https://github.com/awslabs/smithy-kotlin/issues/258 +fun Project.setOutgoingVariantMetadata() { + tasks.withType() { + val javaVersion = JavaVersion.VERSION_1_8.toString() + sourceCompatibility = javaVersion + targetCompatibility = javaVersion + } +}