package Ġio . gitlab . art urb os ch . de te kt Ċ Ċ 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 . internal . Det ek t Android Ċ import Ġio . gitlab . art urb os ch . de te kt . internal . Det ek t Jvm Ċ import Ġio . gitlab . art urb os ch . de te kt . internal . Det ek t Plain Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . plugins . Reporting Base Plugin Ċ import Ġorg . gradle . api . reporting . Reporting Extension Ċ Ċ class ĠDet ek t Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġapply ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . plugin Manager . apply ( Reporting Base Plugin :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġextension Ġ= Ġproject . extensions . create ( DE TE KT _ EXTENSION , ĠDet ek t Extension :: class . java ) ĊĠĠĠĠĠĠĠ Ġextension . reports Dir Ġ= Ġproject . extensions . getBy Type ( Reporting Extension :: class . java ). file (" de te kt ") ĊĊĠĠĠĠĠĠĠ Ġval Ġdefault ConfigFile Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . file ("${ project . root Project . layout . project Directory . dir ( CONFIG _ DIR _ NAME ) }/ $ CONFIG _ FILE ") ĊĠĠĠĠĠĠĠ Ġif Ġ( default ConfigFile . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextension . config Ġ= Ġproject . files ( default ConfigFile ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconfigure Plugin Dependencies ( project , Ġextension ) ĊĠĠĠĠĠĠĠ Ġset Task Defaults ( project ) ĊĊĠĠĠĠĠĠĠ Ġproject . register Det ek t Plain Task ( extension ) ĊĠĠĠĠĠĠĠ Ġproject . register Det ek t Jvm Tasks ( extension ) ĊĠĠĠĠĠĠĠ Ġproject . register Det ek t Android Tasks ( extension ) ĊĠĠĠĠĠĠĠ Ġproject . register Generate Config Task ( extension ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠProject . register Det ek t Jvm Tasks ( extension : ĠDet ek t Extension ) Ġ{ ĊĠĠĠĠĠĠĠ Ġplugins . with Id (" org . jetbrains . kotlin . jvm ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDet ek t Jvm ( this ). register Tasks ( extension ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠProject . register Det ek t Android Tasks ( extension : ĠDet ek t Extension ) Ġ{ ĊĠĠĠĠĠĠĠ Ġplugins . with Id (" kotlin - android ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDet ek t Android ( this ). register Tasks ( extension ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠProject . register Det ek t Plain Task ( extension : ĠDet ek t Extension ) Ġ{ ĊĠĠĠĠĠĠĠ ĠDet ek t Plain ( this ). register Tasks ( extension ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠProject . register Generate Config Task ( extension : ĠDet ek t Extension ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtasks . register ( GENER ATE _ CONFIG , ĠDet ek t Generate Config Task :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . config . set From ( project . provider Ġ{ Ġextension . config Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfigure Plugin Dependencies ( project : ĠProject , Ġextension : ĠDet ek t Extension ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . configurations . create ( CONFIGURATION _ DE TE KT _ PLUGIN S ) Ġ{ Ġconfiguration Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . is Trans itive Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . description Ġ= Ġ" The Ġ$ CONFIGURATION _ DE TE KT _ PLUGIN S Ġlibraries Ġto Ġbe Ġused Ġfor Ġthis Ġproject ." ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġproject . configurations . create ( CONFIGURATION _ DE TE KT ) Ġ{ Ġconfiguration Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . is Trans itive Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . description Ġ= Ġ" The Ġ$ CONFIGURATION _ DE TE KT Ġdependencies Ġto Ġbe Ġused Ġfor Ġthis Ġproject ." ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . default Dependencies Ġ{ Ġdependency Set Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġextension . tool Version Ġ?: ĠDEFAULT _ DE TE KT _ VERSION ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependency Set . add ( project . dependencies . create (" io . gitlab . art urb os ch . de te kt : de te kt - cli :$ version ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Task Defaults ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . tasks . with Type ( Det ek t :: class . java ). configure Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . de te kt Classpath . set From ( project . configurations . get At ( CONFIGURATION _ DE TE KT )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . plugin Classpath . set From ( project . configurations . get At ( CONFIGURATION _ DE TE KT _ PLUGIN S )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġproject . tasks . with Type ( Det ek t Create Baseline Task :: class . java ). configure Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . de te kt Classpath . set From ( project . configurations . get At ( CONFIGURATION _ DE TE KT )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . plugin Classpath . set From ( project . configurations . get At ( CONFIGURATION _ DE TE KT _ PLUGIN S )) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġproject . tasks . with Type ( Det ek t Generate Config Task :: class . java ). configure Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . de te kt Classpath . set From ( project . configurations . get At ( CONFIGURATION _ DE TE KT )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDET EK T _ TASK _ NAME Ġ= Ġ" de te kt " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBASE LINE _ TASK _ NAME Ġ= Ġ" de te kt Baseline " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDET EK T _ EXTENSION Ġ= Ġ" de te kt " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠGENER ATE _ CONFIG Ġ= Ġ" de te kt Generate Config " ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġdefault Exclude s Ġ= ĠlistOf (" build /") ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġdefault Includes Ġ= ĠlistOf (" ** /*. kt ", Ġ"** /*. k ts ") ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠCONFIG _ DIR _ NAME Ġ= Ġ" config / de te kt " ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠCONFIG _ FILE Ġ= Ġ" de te kt . yml " ĊĠĠĠ Ġ} Ċ } Ċ Ċ const Ġval ĠCONFIG URATION _ DE TE KT Ġ= Ġ" de te kt " Ċ const Ġval ĠCONFIG URATION _ DE TE KT _ PLUGIN S Ġ= Ġ" de te kt Plugins " Ċ