From 33eef3bc1ca1d8c76e9799ee28d065df214182b1 Mon Sep 17 00:00:00 2001 From: Moritz Halbritter Date: Mon, 1 Aug 2022 16:53:29 +0200 Subject: [PATCH] Add support for Kotlin --- build.gradle | 1 + gradle-plugins/aot-smoke-test-plugin/build.gradle | 1 + .../aot/gradle/AotSmokeTestPlugin.java | 13 +++++++++++++ 3 files changed, 15 insertions(+) diff --git a/build.gradle b/build.gradle index 4ea00015..3c212c82 100644 --- a/build.gradle +++ b/build.gradle @@ -10,6 +10,7 @@ buildscript { plugins { id "io.spring.javaformat" version "0.0.34" apply false id "org.graalvm.buildtools.native" version "0.9.13" apply false + id "org.jetbrains.kotlin.jvm" version "1.7.10" apply false } subprojects { diff --git a/gradle-plugins/aot-smoke-test-plugin/build.gradle b/gradle-plugins/aot-smoke-test-plugin/build.gradle index 124a813e..8a99212d 100644 --- a/gradle-plugins/aot-smoke-test-plugin/build.gradle +++ b/gradle-plugins/aot-smoke-test-plugin/build.gradle @@ -25,6 +25,7 @@ dependencies { compileOnly("io.spring.javaformat:spring-javaformat-gradle-plugin:$javaFormatVersion") compileOnly("org.graalvm.buildtools:native-gradle-plugin:0.9.13") compileOnly("org.springframework.boot:spring-boot-gradle-plugin:3.0.0-SNAPSHOT") + compileOnly("org.jetbrains.kotlin:kotlin-gradle-plugin:1.7.10") implementation("com.avast.gradle:gradle-docker-compose-plugin:0.16.8") } diff --git a/gradle-plugins/aot-smoke-test-plugin/src/main/java/org/springframework/aot/gradle/AotSmokeTestPlugin.java b/gradle-plugins/aot-smoke-test-plugin/src/main/java/org/springframework/aot/gradle/AotSmokeTestPlugin.java index a2a0f7da..88adaab0 100644 --- a/gradle-plugins/aot-smoke-test-plugin/src/main/java/org/springframework/aot/gradle/AotSmokeTestPlugin.java +++ b/gradle-plugins/aot-smoke-test-plugin/src/main/java/org/springframework/aot/gradle/AotSmokeTestPlugin.java @@ -39,6 +39,7 @@ import org.gradle.api.provider.Provider; import org.gradle.api.tasks.SourceSet; import org.gradle.api.tasks.TaskProvider; import org.gradle.api.tasks.testing.Test; +import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile; import org.springframework.boot.gradle.plugin.SpringBootPlugin; import org.springframework.boot.gradle.tasks.bundling.BootJar; @@ -49,6 +50,7 @@ import org.springframework.boot.gradle.tasks.bundling.BootJar; * and as a native image. * * @author Andy Wilkinson + * @author Moritz Halbritter */ public class AotSmokeTestPlugin implements Plugin { @@ -77,6 +79,11 @@ public class AotSmokeTestPlugin implements Plugin { }); configureJvmTests(project, aotTest, extension); configureNativeImageTests(project, aotTest, extension); + configureKotlin(project, javaExtension); + configureJavaFormat(project); + } + + private void configureJavaFormat(Project project) { project.getPlugins().withType(SpringJavaFormatPlugin.class, (javaFormat) -> { project.getTasks().withType(CheckFormat.class).configureEach((task) -> { if (task.getName().equals("checkFormatAot")) { @@ -86,6 +93,12 @@ public class AotSmokeTestPlugin implements Plugin { }); } + private void configureKotlin(Project project, JavaPluginExtension javaExtension) { + project.getTasks().withType(KotlinJvmCompile.class).configureEach((kotlinCompile) -> { + kotlinCompile.getKotlinOptions().setJvmTarget(javaExtension.getTargetCompatibility().toString()); + }); + } + private void configureJvmTests(Project project, SourceSet aotTest, AotSmokeTestExtension extension) { Provider archiveFile = project.getTasks().named(SpringBootPlugin.BOOT_JAR_TASK_NAME, BootJar.class) .flatMap(BootJar::getArchiveFile);