/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 2 ĠT ats u ya ĠM aki Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ import Ġgro ovy . lang . Missing Property Exception Ċ import Ġinfo . solid soft . gradle . pitest . P it est Plugin Extension Ċ import Ġio . gitlab . art urb os ch . de te kt . Det ek t Ċ import Ġio . gitlab . art urb os ch . de te kt . extensions . Det ek t Extension Ċ import Ġio . gitlab . art urb os ch . de te kt . report . Report Merge Task Ċ import Ġkotlin . jvm . Throws Ċ import Ġkotlinx . k over . api . Coverage Engine . INTEL LI J Ċ Ċ @ Suppress (" DSL _ SCOPE _ VI OL ATION ") Ċ plugins Ġ{ ĊĠĠĠ Ġalias ( deps . plugins . de te kt ) ĊĠĠĠ Ġalias ( deps . plugins . kotlin . jvm ) ĊĠĠĠ Ġalias ( deps . plugins . kotlin x . k over ) ĊĠĠĠ Ġalias ( deps . plugins . pitest ) Ċ } Ċ Ċ /** Ċ Ġ* ĠRetrieve Ġa Ġproperty Ġby Ġkey Ġas Ġa ĠString Ċ Ġ* Ċ Ġ* Ġ@ param Ġkey ĠProperty Ġkey . Ċ Ġ* Ġ@ return ĠProperty Ġvalue Ġas Ġa ĠString . Ċ Ġ* Ġ@ throws ĠMissing Property Exception ĠProperty Ġkey Ġdoes Ġnot Ġexist Ġin Ġproperties . Ċ Ġ*/ Ċ @ Throws ( Missing Property Exception :: class ) Ċ fun Ġproperties ( key : ĠString ): ĠString Ġ{ ĊĠĠĠ Ġval Ġproperty Ġ= Ġproject . find Property ( key ) ĊĠĠĠ Ġreturn Ġproperty ?. toString () Ġ?: Ġthrow ĠMissing Property Exception (" Property Ġ'$ key ' Ġdoes Ġnot Ġexist ") Ċ } Ċ Ċ apply ( plugin Ġ= Ġ" info . solid soft . pitest . ag gregator ") Ċ Ċ k over Ġ{ ĊĠĠĠ Ġis Disabled Ġ= Ġfalse ĊĠĠĠ Ġcoverage Engine . set ( INTEL LI J ) Ċ } Ċ Ċ all projects Ġ{ ĊĠĠĠ Ġgroup Ġ= Ġproperties (" plugin . group ") ĊĠĠĠ Ġversion Ġ= Ġproperties (" plugin . version ") ĊĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠ Ġmaven Central () ĊĠĠĠ Ġ} Ċ } Ċ Ċ sub projects Ġ{ ĊĠĠĠ Ġapply ( plugin Ġ= Ġ" org . jetbrains . kotlin . jvm ") ĊĠĠĠ Ġapply ( plugin Ġ= Ġ" io . gitlab . art urb os ch . de te kt ") ĊĠĠĠ Ġapply ( plugin Ġ= Ġ" info . solid soft . pitest ") ĊĊĠĠĠ Ġtasks Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjava Version Ġ= Ġproperties (" java . version ") ĊĠĠĠĠĠĠĠ Ġcompile Kotlin Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Compatibility Ġ= Ġjava Version ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Compatibility Ġ= Ġjava Version ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj vm Target Ġ= Ġjava Version ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfree Compiler Args Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- opt - in = kotlin . Requires Opt In ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- X opt - in = kotlin x . serialization . Experimental Serialization Api " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompile Test Kotlin Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Compatibility Ġ= Ġjava Version ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Compatibility Ġ= Ġjava Version ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj vm Target Ġ= Ġjava Version ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfree Compiler Args Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- opt - in = kotlin . Requires Opt In ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"- X opt - in = kotlin x . serialization . Experimental Serialization Api " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompile Java Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Compatibility Ġ= Ġjava Version ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Compatibility Ġ= Ġjava Version ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompile Test Java Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsource Compatibility Ġ= Ġjava Version ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget Compatibility Ġ= Ġjava Version ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwith Type < Det ek t >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreports Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġxml . required . set ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhtml . required . set ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtxt . required . set ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsar if . required . set ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconfigure < Det ek t Extension > Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild Up on Default Config Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġconfig Ġ= Ġfiles ("$ rootDir / config / de te kt . yml ") ĊĠĠĠĠĠĠĠ Ġsource Ġ= Ġfiles (" src / main / kotlin ", Ġ" src / test / kotlin ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconfigure < P it est Plugin Extension > Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Plugin . set (" junit 5 ") ĊĠĠĠĠĠĠĠ Ġjunit 5 Plugin Version . set (" 0 . 1 5 ") ĊĠĠĠĠĠĠĠ Ġmut ators . set ( set Of (" DEFAULT S ")) ĊĠĠĠĠĠĠĠ Ġtarget Classes . set ( set Of (" io . t 2 8 . kotlin ify .* ")) ĊĠĠĠĠĠĠĠ Ġavoid Calls To . set ( set Of (" kotlin . jvm . internal ")) ĊĊĠĠĠĠĠĠĠ Ġoutput Formats . set ( set Of (" HTML ", Ġ" XML ")) ĊĠĠĠĠĠĠĠ Ġtimestamp ed Reports . set ( false ) ĊĠĠĠĠĠĠĠ Ġexport Line Coverage . set ( false ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks Ġ{ ĊĠĠĠ Ġregister < Report Merge Task >(" de te kt Merge Xml Reports ") Ġ{ ĊĠĠĠĠĠĠĠ Ġgroup Ġ= Ġ" verification " ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Merge s ĠXML Ġreports Ġfrom Ġall Ġsub projects Ġin Ġone Ġdirectory ." ĊĊĠĠĠĠĠĠĠ Ġinput . from ( sub projects . map Ġ{ Ġ"${ it . build Dir }/ reports / de te kt / de te kt . xml " Ġ}) ĊĠĠĠĠĠĠĠ Ġoutput . set ( file ("$ build Dir / reports / de te kt / de te kt . xml ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġregister < Report Merge Task >(" de te kt Merge Sar if Reports ") Ġ{ ĊĠĠĠĠĠĠĠ Ġgroup Ġ= Ġ" verification " ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Merge s ĠSar if Ġreports Ġfrom Ġall Ġsub projects Ġin Ġone Ġdirectory ." ĊĊĠĠĠĠĠĠĠ Ġinput . from ( sub projects . map Ġ{ Ġ"${ it . build Dir }/ reports / de te kt / de te kt . sar if " Ġ}) ĊĠĠĠĠĠĠĠ Ġoutput . set ( file ("$ build Dir / reports / de te kt / de te kt . sar if ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġregister (" de te kt Merge Reports ") Ġ{ ĊĠĠĠĠĠĠĠ Ġgroup Ġ= Ġ" verification " ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Merge s Ġreports Ġfrom Ġall Ġsub projects Ġin Ġone Ġdirectory ." ĊĊĠĠĠĠĠĠĠ Ġdepends On (" de te kt Merge Xml Reports ", Ġ" de te kt Merge Sar if Reports ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġk over Collect Reports Ġ{ ĊĠĠĠĠĠĠĠ Ġoutput Dir . set ( layout . build Directory . dir (" reports / k over ")) ĊĠĠĠ Ġ} Ċ } Ċ