BuildscriptKotlinDefaults: ensure configureDefaultsIdeaKotlinJava is applied to target project, workarounds for some edge cases with setting jvm versions

This commit is contained in:
David Hiendl 2025-05-22 14:42:42 +02:00
parent 1f48d41a3d
commit d25a695ea0

View File

@ -10,6 +10,7 @@ buildscript {
repositories { repositories {
mavenCentral() mavenCentral()
// gradlePluginPortal()
} }
dependencies { dependencies {
@ -59,21 +60,27 @@ ext.useCompactKotlinSourceSets = { org.gradle.api.Project target ->
// configure defaults for java and jdk versions based on provided variables and enable intellij idea integration // configure defaults for java and jdk versions based on provided variables and enable intellij idea integration
ext.configureDefaultsIdeaKotlinJava = { org.gradle.api.Project target -> ext.configureDefaultsIdeaKotlinJava = { org.gradle.api.Project target ->
idea { target.idea {
module { module {
downloadJavadoc = true downloadJavadoc = true
downloadSources = true downloadSources = true
} }
} }
kotlin { target.kotlin {
compilerOptions { compilerOptions {
jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.valueOf("JVM_${javaVersion}")) // jvmTarget.set(org.jetbrains.kotlin.gradle.dsl.JvmTarget.valueOf("JVM_${javaVersion}"))
// workaround for mismatch classloader issues sometimes happening
var newValue = jvmTarget.get().class.getEnumConstants().find { it.target == "${javaVersion}" }
jvmTarget.set(newValue)
} }
jvmToolchain { jvmToolchain {
var newVersion = JavaLanguageVersion.of(jdkVersion)
if (newVersion != languageVersion.getOrNull()) {
languageVersion.set(JavaLanguageVersion.of(jdkVersion)) languageVersion.set(JavaLanguageVersion.of(jdkVersion))
} }
} }
java { }
target.java {
sourceCompatibility = JavaVersion.toVersion(javaVersion) sourceCompatibility = JavaVersion.toVersion(javaVersion)
targetCompatibility = JavaVersion.toVersion(javaVersion) targetCompatibility = JavaVersion.toVersion(javaVersion)
withJavadocJar() withJavadocJar()