Add support for Kotlin

This commit is contained in:
Moritz Halbritter
2022-08-01 16:53:29 +02:00
parent cabd70d6a5
commit 33eef3bc1c
3 changed files with 15 additions and 0 deletions

View File

@@ -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 {

View File

@@ -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")
}

View File

@@ -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<Project> {
@@ -77,6 +79,11 @@ public class AotSmokeTestPlugin implements Plugin<Project> {
});
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<Project> {
});
}
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<RegularFile> archiveFile = project.getTasks().named(SpringBootPlugin.BOOT_JAR_TASK_NAME, BootJar.class)
.flatMap(BootJar::getArchiveFile);