33import io.gitlab.arturbosch.detekt.Detekt
44import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi
55import org.jetbrains.kotlin.gradle.ExperimentalWasmDsl
6+ import org.jetbrains.kotlin.gradle.dsl.JvmTarget
67import org.jetbrains.kotlin.gradle.plugin.KotlinTarget
78import org.jetbrains.kotlin.gradle.plugin.KotlinTargetWithTests
9+ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
810import org.jlleitschuh.gradle.ktlint.reporter.ReporterType
911
1012plugins {
@@ -18,15 +20,25 @@ plugins {
1820 convention.publication
1921}
2022
23+ java {
24+ toolchain {
25+ languageVersion = JavaLanguageVersion .of(11 )
26+ }
27+ }
28+
2129kotlin {
2230 explicitApi()
2331
2432 @OptIn(ExperimentalKotlinGradlePluginApi ::class )
2533 compilerOptions {
2634 freeCompilerArgs.add(" -opt-in=io.github.optimumcode.json.schema.ExperimentalApi" )
2735 }
28- jvmToolchain(11 )
2936 jvm {
37+ withJava()
38+ compilerOptions {
39+ jvmTarget = JvmTarget .JVM_11
40+ freeCompilerArgs.add(" -Xjdk-release=11" )
41+ }
3042 testRuns[" test" ].executionTask.configure {
3143 useJUnitPlatform()
3244 }
@@ -168,4 +180,24 @@ afterEvaluate {
168180 tasks.named(" check" ).configure {
169181 dependsOn(detektAllTask)
170182 }
183+ }
184+
185+ tasks {
186+ named<JavaCompile >(" compileJava" ) {
187+ options.compilerArgumentProviders + =
188+ object : CommandLineArgumentProvider {
189+ @InputFiles
190+ @PathSensitive(PathSensitivity .RELATIVE )
191+ val kotlinClasses =
192+ this @tasks.named<KotlinCompile >(
193+ " compileKotlinJvm" ,
194+ ).flatMap(KotlinCompile ::destinationDirectory)
195+
196+ override fun asArguments () =
197+ listOf (
198+ " --patch-module" ,
199+ " io.github.optimumcode.json.schema=${kotlinClasses.get().asFile.absolutePath} " ,
200+ )
201+ }
202+ }
171203}
0 commit comments