fun Ġcompat ( src : ĠString ): ĠString Ġ{ ĊĠĠĠ Ġif Ġ( src . contains (". ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsrc . substring ( src . lastIndexOf (".") Ġ+ Ġ 1 ) ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsrc ĊĠĠĠ Ġ} Ċ } Ċ Ċ val Ġjava Home : ĠString Ġby Ġproject Ċ val Ġtarget Java Home Ġ= Ġif Ġ( has Property (" java Home ")) Ġjava Home Ġelse ĠSystem . getenv (" TARGET _ JAVA _ HOME ") Ċ Ċ if Ġ(! Java Version . current (). is Java 9 Compatible ()) Ġ{ ĊĠĠĠ Ġthrow ĠGradle Exception (" You Ġmust Ġrun ĠGradle Ġwith ĠJDK Ġ 9 +. ĠSet Ġ- P java Home Ġor ĠTARGET _ JAVA _ HOME Ġto Ġtest Ġwith Ġan Ġolder ĠJava Ġversion .") Ċ } Ċ project . after Evaluate Ġ{ ĊĠĠĠ Ġtasks . with Type < Java Compile >(). configure Each Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġcompat ( source Compatibility ) ĊĠĠĠĠĠĠĠ Ġlogger . info (" Config uring Ġ$ name Ġto Ġuse Ġ-- release Ġ$ version ") ĊĠĠĠĠĠĠĠ Ġoptions . compiler Args . addAll ( listOf ("-- release ", Ġversion )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠSet Ġup ĠJava Ġoverride Ġif Ġconfigured Ġ( used Ġto Ġtest Ġwith ĠJava Ġ 7 Ġand Ġ 8 ). ĊĠĠĠ Ġif Ġ( target Java Home Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" Target ĠJava Ġhome Ġset Ġto Ġ${ target Java Home }") ĊĠĠĠĠĠĠĠ Ġlogger . info (" Config uring ĠGradle Ġto Ġuse Ġit Ġfor Ġtesting ") ĊĊĠĠĠĠĠĠĠ Ġval Ġjava Exec ut ables Path Ġ= ĠFile ( target Java Home , Ġ" bin ") ĊĠĠĠĠĠĠĠ Ġfun Ġjava Executable ( exec Name : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġexecutable Ġ= ĠFile ( java Exec ut ables Path , Ġexec Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire ( executable . exists ()) Ġ{ Ġ" There Ġis Ġno Ġ${ exec Name } Ġexecutable Ġin Ġ${ java Exec ut ables Path }" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġexecutable . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtasks . with Type < Javadoc >(). configure Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecutable Ġ= Ġjava Executable (" javadoc ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtasks . with Type < Test >(). configure Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecutable Ġ= Ġjava Executable (" java ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtasks . with Type < Java Exec >(). configure Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexecutable Ġ= Ġjava Executable (" java ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġtasks . named < Java Compile >(" compile Java ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo First Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . compiler Args . addAll ( listOf ("-- module - path ", Ġclasspath . as Path )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclasspath Ġ= Ġfiles () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ