diff --git a/build.gradle.kts b/build.gradle.kts index ee59037..a0fb654 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,5 +1,5 @@ plugins { - kotlin("jvm") version Versions.kotlin + kotlin("jvm") id("default-config") id("default-java-publish") } diff --git a/buildSrc/build.gradle.kts b/buildSrc/build.gradle.kts index f63e031..b4061b9 100644 --- a/buildSrc/build.gradle.kts +++ b/buildSrc/build.gradle.kts @@ -6,3 +6,7 @@ plugins { `kotlin-dsl` `kotlin-dsl-precompiled-script-plugins` } + +dependencies { + implementation("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.24") +} \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/Config.kt b/buildSrc/src/main/kotlin/Config.kt index 32649f5..e780294 100644 --- a/buildSrc/src/main/kotlin/Config.kt +++ b/buildSrc/src/main/kotlin/Config.kt @@ -1,5 +1,15 @@ +import org.gradle.api.JavaVersion +import org.jetbrains.kotlin.gradle.dsl.JvmTarget + object Config { val group = "dev.bright.codified" - val version = "1.8.22.2" - val jvmToolchain = 8 + val version = "1.9.24.1" + + /** + * Since Gradle 8.8 a toolchain can also be set for the Gradle daemon (with some limitations) + * See [the docs](https://docs.gradle.org/8.8/userguide/gradle_daemon.html#sec:daemon_jvm_criteria) for more info + */ + val jvmToolchain = 21 + val javaTargetCompatibility = JavaVersion.VERSION_1_8 + val kotlinJvmTarget = JvmTarget.fromTarget(javaTargetCompatibility.toString()) } \ No newline at end of file diff --git a/buildSrc/src/main/kotlin/Versions.kt b/buildSrc/src/main/kotlin/Versions.kt index 9b12091..0a4b265 100644 --- a/buildSrc/src/main/kotlin/Versions.kt +++ b/buildSrc/src/main/kotlin/Versions.kt @@ -1,8 +1,8 @@ object Versions { - const val kotlin = "1.8.22" + const val kotlin = "1.9.24" // Keep in sync with buildSrc/build.gradle.kts const val junit = "5.6.2" const val shouldko = "0.2.2" - const val serialization = "1.5.1" + const val serialization = "1.6.3" const val jackson = "2.15.2" const val gson = "2.10.1" } diff --git a/buildSrc/src/main/kotlin/default-config.gradle.kts b/buildSrc/src/main/kotlin/default-config.gradle.kts index 537e620..15289bc 100644 --- a/buildSrc/src/main/kotlin/default-config.gradle.kts +++ b/buildSrc/src/main/kotlin/default-config.gradle.kts @@ -1,11 +1,20 @@ plugins { `java-library` + kotlin("jvm") } java { toolchain { languageVersion.set(JavaLanguageVersion.of(Config.jvmToolchain)) } + sourceCompatibility = Config.javaTargetCompatibility + targetCompatibility = Config.javaTargetCompatibility +} + +kotlin { + compilerOptions { + jvmTarget = Config.kotlinJvmTarget + } } tasks.withType { diff --git a/gradle/gradle-daemon-jvm.properties b/gradle/gradle-daemon-jvm.properties new file mode 100644 index 0000000..63e5bbd --- /dev/null +++ b/gradle/gradle-daemon-jvm.properties @@ -0,0 +1,2 @@ +#This file is generated by updateDaemonJvm +toolchainVersion=21 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index fae0804..0d18421 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/settings.gradle.kts b/settings.gradle.kts index 7057903..b09278c 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,3 +1,7 @@ +plugins { + id("org.gradle.toolchains.foojay-resolver-convention") version "0.7.0" +} + rootProject.name = "codified" include("enums") include("enums-serializer")