package Ġcom . mike pen z . about libraries . plugin Ċ Ċ import Ġcom . mike pen z . about libraries . plugin . model . Collected Container Ċ import Ġcom . mike pen z . about libraries . plugin . util . Dependency Collector Ċ import Ġorg . gradle . api . Default Task Ċ import Ġorg . gradle . api . tasks . Cache able Task Ċ import Ġorg . gradle . api . tasks . Internal Ċ import Ġorg . gradle . api . tasks . OutputFile Ċ import Ġorg . gradle . api . tasks . Task Action Ċ import Ġjava . io . File Ċ Ċ @ Cache able Task Ċ abstract Ġclass ĠAbout Libraries Collector Task Ġ: ĠDefault Task () Ġ{ ĊĊĠĠĠ Ġ/** Ġholds Ġthe Ġcollected Ġset Ġof Ġdependencies */ ĊĠĠĠ Ġ@ Internal ĊĠĠĠ Ġprotected Ġlateinit Ġvar Ġcollected Dependencies : ĠCollect ed Container ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCollect Ġthe Ġdependencies Ġvia Ġthe Ġavailable Ġconfigurations Ġfor Ġthe Ġcurrent Ġproject ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġconfigure () Ġ{ ĊĠĠĠĠĠĠĠ Ġcollected Dependencies Ġ= ĠDependency Collector (). collect ( project ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġdependency Cache : ĠFile ĊĠĠĠĠĠĠĠ Ġ@ OutputFile ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfolder Ġ= ĠFile ( project . build Dir , Ġ" generated / about Libraries / "). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . mkdir s () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFile ( folder , Ġ" dependency _ cache . json ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Task Action ĊĠĠĠ Ġfun Ġaction () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! :: collected Dependencies . isInitialized ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdependency Cache . write Text ( groovy . json . Json Output . toJson ( collected Dependencies )) ĊĠĠĠ Ġ} Ċ }