@ file : Suppress (" Un stable Api Usage ", Ġ" unused ") Ċ Ċ package Ġcom . aut onomous apps Ċ Ċ import Ġcom . aut onomous apps . extension . Ab i Handler Ċ import Ġcom . aut onomous apps . extension . Dependencies Handler Ċ import Ġcom . aut onomous apps . extension . Issue Handler Ċ import Ġorg . gradle . api . Action Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . model . ObjectFactory Ċ import Ġorg . gradle . api . provider . Map Property Ċ import Ġorg . gradle . api . provider . Property Ċ import Ġorg . gradle . kotlin . dsl . create Ċ import Ġorg . gradle . kotlin . dsl . findBy Type Ċ import Ġorg . gradle . kotlin . dsl . newInstance Ċ import Ġorg . gradle . kotlin . dsl . property Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠSummary Ġof Ġtop - level ĠDSL Ġconfig : Ċ Ġ* Ġ``` Ċ Ġ* Ġdependency Analysis Ġ{ Ċ Ġ* ĠĠ Ġ// ĠWhen Ġtrue Ġ( default ), Ġapplies Ġitself Ġto Ġall Ġsub projects Ġautomatically . Ċ Ġ* ĠĠ Ġauto Apply (< true | false >) Ċ Ġ* Ċ Ġ* ĠĠ Ġ// ĠWhen Ġtrue Ġ( default ), Ġadvice Ġis Ġto Ġexplicitly Ġadd Ġall Ġused Ġtrans itive Ġdependencies Ġto Ġeach Ċ Ġ* ĠĠ Ġ// Ġproject . Ċ Ġ* ĠĠ Ġstrict Mode (< true | false >) Ċ Ġ* Ċ Ġ* ĠĠ Ġ// ĠSet Ġa Ġmap Ġof Ġliteral Ġdependency Ġdeclarations Ġto Ġsemantic Ġaliases . Ċ Ġ* ĠĠ Ġset Dependency Ren aming Map (< map >) Ċ Ġ* Ċ Ġ* ĠĠ Ġ// ĠConfigure Ġthe Ġseverity Ġof Ġissues , Ġand Ġex clusion Ġrules , Ġfor Ġpotentially Ġthe Ġentire Ġproject . Ċ Ġ* ĠĠ Ġissues Ġ{ Ġ... Ġ} Ċ Ġ* Ċ Ġ* ĠĠ Ġ// ĠConfigure Ġdependency Ġbundles . Ċ Ġ* ĠĠ Ġdependencies Ġ{ Ġ... Ġ} Ċ Ġ* Ċ Ġ* ĠĠ Ġ// ĠConfigure ĠABI Ġex clusion Ġrules . Ċ Ġ* ĠĠ Ġabi Ġ{ Ġ... Ġ} Ċ Ġ* Ċ Ġ* Ġ} Ċ Ġ* Ġ``` Ċ Ġ*/ Ċ @ Suppress (" Member Visibility Can Be Private ") Ċ open Ġclass ĠDependency Analysis Extension Ġ@ Inject Ġconstructor ( objects : ĠObject Factory ) Ġ: ĠAbstract Extension ( objects ) Ġ{ ĊĊĠ Ġinternal Ġval Ġstrict Mode : ĠProperty < Boolean > Ġ= Ġobjects . property < Boolean >(). convention ( true ) ĊĠ Ġinternal Ġval Ġauto Apply : ĠProperty < Boolean > Ġ= Ġobjects . property < Boolean >(). convention ( true ) ĊĊĠ Ġoverride Ġval Ġissue Handler Ġ= Ġobjects . newInstance ( Issue Handler :: class ) ĊĠ Ġinternal Ġval Ġabi Handler Ġ= Ġobjects . newInstance ( Ab i Handler :: class ) ĊĠ Ġinternal Ġval Ġdependencies Handler Ġ= Ġobjects . newInstance ( Dependencies Handler :: class ) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠIf Ġ` true `, Ġ` build Health ` Ġwill Ġadv ise Ġthe Ġuser Ġto Ġdeclare Ġall Ġtrans itive Ġdependencies Ġthat Ġare ĊĠĠ Ġ* Ġbeing Ġused . ĠIf Ġ` false `, Ġ` build Health ` Ġwill Ġonly Ġemit Ġsuch Ġadvice Ġif Ġit Ġwould Ġbe Ġnecessary Ġto ĊĠĠ Ġ* Ġhave Ġa Ġcorrectly Ġdeclared ĠABI . ĠOtherwise Ġ( for Ġimplementation Ġdependencies , Ġfor Ġexample ), ĊĠĠ Ġ* Ġ` build Health ` Ġnow Ġcons iders Ġit Ġcorrect Ġto Ġuse Ġdependencies Ġthat Ġare Ġon Ġthe Ġclasspath , Ġeven Ġif ĊĠĠ Ġ* Ġthey Ġare Ġnot Ġdirectly Ġdeclared . ĠEven Ġwith Ġ` false `, Ġ` build Health ` Ġwill Ġnot Ġrecommend Ġ_ re moving _ ĊĠĠ Ġ* Ġimplementation Ġdependencies , Ġeven Ġif Ġthey Ġwould Ġotherwise Ġbe Ġavailable . ĠFinally , Ġthe Ġbehavior ĊĠĠ Ġ* Ġof Ġ` some - project : project Health ` Ġis Ġunchanged . ĠThe Ġanalysis Ġrequired Ġfor Ġnon - strict Ġmode Ġcannot ĊĠĠ Ġ* Ġbe Ġdone Ġat Ġthe Ġproject Ġlevel . ĠDefault Ġis Ġ` true ` Ġ( the Ġbehavior Ġsince Ġv 0 . 1 ). ĊĠĠ Ġ*/ ĊĠ Ġfun Ġstrict Mode ( is Strict : ĠBoolean ) Ġ{ ĊĠĠĠ Ġstrict Mode . set ( is Strict ) ĊĠĠĠ Ġstrict Mode . dis allow Changes () ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠIf Ġ` true `, Ġyou Ġonly Ġapply Ġthe Ġplugin Ġto Ġthe Ġroot Ġproject Ġand Ġit Ġwill Ġauto - apply Ġto Ġall Ġsub projects . ĠIf Ġ` false `, Ġyou ĊĠĠ Ġ* Ġmust Ġapply Ġthe Ġplugin Ġto Ġeach Ġsub project Ġyou Ġwant Ġto Ġanalyze Ġmanually . ĠThe Ġplugin Ġ_ must _ Ġalso Ġbe Ġapplied Ġto Ġthe ĊĠĠ Ġ* Ġroot Ġproject . ĠDefault Ġis Ġ` true `. ĊĠĠ Ġ* ĊĠĠ Ġ* ĠDeprecated . ĠWill Ġbe Ġremoved Ġafter Ġa Ġrelease Ġcycle . ĊĠĠ Ġ*/ ĊĠ Ġ@ Deprecated (" Use Ġ- D dependency . analysis . auto apply = false Ġinstead ") ĊĠ Ġfun Ġauto Apply ( is Auto Apply : ĠBoolean ) Ġ{ ĊĠĠĠ Ġauto Apply . set ( is Auto Apply ) ĊĠĠĠ Ġauto Apply . dis allow Changes () ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠCustom ize Ġhow Ġdependencies Ġare Ġtreated . ĠSee Ġ[ Dependencies Handler ] Ġfor Ġmore Ġinformation . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġdependencies ( action : ĠAction < Dependencies Handler >) Ġ{ ĊĠĠĠ Ġaction . execute ( dependencies Handler ) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠCustom ize Ġhow Ġthe ĠABI Ġis Ġcalculated . ĠSee Ġ[ Ab i Handler ] Ġfor Ġmore Ġinformation . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġabi ( action : ĠAction < Ab i Handler >) Ġ{ ĊĠĠĠ Ġaction . execute ( abi Handler ) ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠCustom ize Ġhow Ġ" issues " Ġare Ġtreated . ĠSee Ġ[ Issue Handler ] Ġfor Ġmore Ġinformation . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġissues ( action : ĠAction < Issue Handler >) Ġ{ ĊĠĠĠ Ġaction . execute ( issue Handler ) ĊĠ Ġ} ĊĊĠ Ġinternal Ġval Ġdependency Ren aming Map : ĠMap Property < String , ĠString > Ġ= ĊĠĠĠ Ġobjects . map Property ( String :: class . java , ĠString :: class . java ) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠSet Ġa Ġmap Ġof Ġliteral Ġdependency Ġdeclarations Ġto Ġsemantic Ġaliases . ĠFor Ġexample : ĊĠĠ Ġ* Ġ``` ĊĠĠ Ġ* Ġdependency Analysis Ġ{ ĊĠĠ Ġ* ĠĠ Ġset Dependency Ren aming Map ( map Of (" commons - io : commons - io : 2 . 6 " Ġto Ġ" commons Io ")) ĊĠĠ Ġ* Ġ} ĊĠĠ Ġ* Ġ``` ĊĠĠ Ġ* ĠThis Ġcan Ġbe Ġuseful Ġfor Ġprojects Ġthat Ġhave Ġextracted Ġall Ġdependency Ġdeclarations Ġas Ġsemantic ĊĠĠ Ġ* Ġmaps . ĊĠĠ Ġ*/ ĊĠ Ġfun Ġset Dependency Ren aming Map ( ren amer : ĠMap < String , ĠString >) Ġ{ ĊĠĠĠ Ġdependency Ren aming Map . put All ( ren amer ) ĊĠĠĠ Ġdependency Ren aming Map . dis allow Changes () ĊĠ Ġ} ĊĊĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠ Ġinternal Ġconst Ġval ĠNAME Ġ= Ġ" dependency Analysis " ĊĊĠĠĠ Ġinternal Ġfun Ġcreate ( project : ĠProject ): ĠDependency Analysis Extension Ġ= Ġproject ĊĠĠĠĠĠ Ġ. extensions ĊĠĠĠĠĠ Ġ. create ( NAME ) ĊĠ Ġ} Ċ } Ċ Ċ /** ĠUsed Ġfor Ġvalidity Ġcheck . Ġ*/ Ċ internal Ġfun ĠProject . getExtension OrNull (): ĠDependency Analysis Extension ? Ġ= Ġroot Project . extensions . findBy Type () Ċ Ċ /** ĠUsed Ġafter Ġvalidity Ġcheck , Ġwhen Ġit Ġmust Ġbe Ġnon - null . Ġ*/ Ċ internal Ġfun ĠProject . getExtension (): ĠDependency Analysis Extension Ġ= Ġget Extension OrNull () !! Ċ