plugins Ġ{ ĊĠĠĠ Ġid (" de . j jo h ann es . java - module - dependencies ") ĊĠĠĠ Ġid (" org . jetbrains . kotlin . jvm ") Ċ } Ċ Ċ group Ġ= Ġ" org . my " Ċ val ĠmoduleName Ġ= Ġ"${ project . group }.${ project . name }" Ċ val Ġtest ModuleName Ġ= Ġ"${ moduleName }. test " Ċ Ċ val Ġjava Language Version Ġ= ĠJava Language Version . of ( 1 1 ) Ċ java Ġ{ ĊĠĠĠ Ġtoolchain . language Version . set ( java Language Version ) Ċ } Ċ kotlin . jvm Tool chain Ġ{ ĊĠĠĠ Ġ( this Ġas ĠJava Tool chain Spec ). language Version . set ( java Language Version ) Ċ } Ċ Ċ // Ġthis Ġis Ġneeded Ġbecause Ġwe Ġhave Ġa Ġseparate Ġcompile Ġstep Ġin Ġthis Ġexample Ġwith Ġthe Ġ' module - info . java ' Ġis Ġin Ġ' main / java ' Ġand Ġthe ĠKotlin Ġcode Ġis Ġin Ġ' main / kotlin ' Ċ tasks . compile Java Ġ{ ĊĠĠĠ Ġ// ĠCompiling Ġmodule - info Ġin Ġthe Ġ' main / java ' Ġfolder Ġneeds Ġto Ġsee Ġalready Ġcompiled ĠKotlin Ġcode ĊĠĠĠ Ġoptions . compiler Args Ġ= ĠlistOf ("-- patch - module ", Ġ"$ moduleName =${ source Sets . main . get (). output . as Path }") Ċ } Ċ Ċ // ĠTesting Ġwith ĠJ Unit 5 Ġ( which Ġis Ġavailable Ġin Ġmodules ) Ċ tasks . compile Test Kotlin Ġ{ ĊĠĠĠ Ġ// ĠMake Ġsure Ġonly Ġmodule ĠJ ars Ġare Ġon Ġthe Ġclasspath Ġand Ġnot Ġthe Ġclasses Ġfolders Ġof Ġthe Ġcurrent Ġproject ĊĠĠĠ Ġclasspath Ġ= Ġconfigurations . test Compile Classpath . get () Ċ } Ċ tasks . compile Test Java Ġ{ ĊĠĠĠ Ġ// ĠCompiling Ġmodule - info Ġin Ġthe Ġ' test / java ' Ġfolder Ġneeds Ġto Ġsee Ġalready Ġcompiled ĠKotlin Ġcode ĊĠĠĠ Ġoptions . compiler Args Ġ= ĠlistOf ("-- patch - module ", Ġ"$ test ModuleName =${ source Sets . test . get (). output . as Path }") ĊĠĠĠ Ġ// ĠMake Ġsure Ġonly Ġmodule ĠJ ars Ġare Ġon Ġthe Ġclasspath Ġand Ġnot Ġthe Ġclasses Ġfolders Ġof Ġthe Ġcurrent Ġproject ĊĠĠĠ Ġclasspath Ġ= Ġconfigurations . test Compile Classpath . get () Ċ } Ċ val Ġtest Jar Ġ= Ġtasks . register < Jar >( source Sets . test . get (). jar Task Name ) Ġ{ ĊĠĠĠ Ġ// ĠPackage Ġtest Ġcode / resources Ġas ĠJar Ġso Ġthat Ġthey Ġare Ġa Ġproper Ġmodule Ġat Ġruntime ĊĠĠĠ Ġarchive Classifier . set (" tests ") ĊĠĠĠ Ġfrom ( source Sets . test . get (). output ) Ċ } Ċ tasks . test Ġ{ ĊĠĠĠ Ġclasspath Ġ= Ġconfigurations . test Runtime Classpath . get () Ġ+ Ġfiles ( test Jar ) ĊĠĠĠ Ġuse JUnit Platform () ĊĠĠĠ Ġj vm Args ("- D org . slf 4 j . simple Logger . default LogLevel = error ") Ċ } Ċ Ċ tasks . test Ġ{ ĊĠĠĠ Ġuse JUnit Platform () Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġtest Runtime Only ( java Module Dependencies . g av (" org . junit . jupiter . engine ")) Ċ } Ċ