@ file : Suppress (" Un stable Api Usage ") Ċ Ċ package Ġcom . aut onomous apps Ċ Ċ import Ġcom . aut onomous apps . internal . Artifact Ċ import Ġcom . aut onomous apps . internal . toJson Ċ import Ġcom . aut onomous apps . internal . to Pretty String Ċ import Ġorg . gradle . api . Default Task Ċ import Ġorg . gradle . api . Gradle Exception Ċ import Ġorg . gradle . api . artifacts . Artifact Collection Ċ import Ġorg . gradle . api . file . File Collection Ċ import Ġorg . gradle . api . file . Regular File Property Ċ import Ġorg . gradle . api . model . ObjectFactory Ċ import Ġorg . gradle . api . tasks .* Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠPro duces Ġa Ġreport Ġof Ġall Ġthe Ġartifacts Ġde pended - on Ġby Ġthe Ġgiven Ġproject . ĠUses Ġ${ variant } Compile Classpath , Ġwhich Ġhas Ċ Ġ* Ġvisibility Ġof Ġdirect Ġand Ġtrans itive Ġdependencies Ġ( except Ġthose Ġhidden Ġbehind Ġ` implementation `), Ġincluding Ċ Ġ* Ġcompile Only . Ċ Ġ* Ċ Ġ* Ġnb : Ġthis Ġtask Ġcannot Ġ( eas ily ) Ġuse ĠWork ers , Ġsince Ġan Ġ[ Artifact Collection ] Ġis Ġnot Ġserial izable . Ċ Ġ*/ Ċ @ Cache able Task Ċ open Ġclass ĠArtifact s Analysis Task Ġ@ Inject Ġconstructor ( objects : ĠObject Factory ) Ġ: ĠDefault Task () Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġgroup Ġ= Ġ" verification " ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Produces Ġa Ġreport Ġof Ġall Ġclasses Ġreferenced Ġby Ġa Ġgiven Ġjar " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġthe Ġ" official " Ġinput Ġfor Ġw iring Ġtask Ġdependencies Ġcorrectly , Ġbut Ġis Ġotherwise ĊĠĠĠĠ Ġ* Ġunused . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ get : Classpath ĊĠĠĠ Ġlateinit Ġvar Ġartifact Files : ĠFile Collection ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġis Ġwhat Ġthe Ġtask Ġactually Ġuses Ġas Ġits Ġinput . ĠWe Ġneed Ġboth Ġthe Ġfiles Ġand Ġthe Ġartifact ĊĠĠĠĠ Ġ* Ġmetadata . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ get : Internal ĊĠĠĠ Ġlateinit Ġvar Ġartifacts : ĠArtifact Collection ĊĊĠĠĠ Ġ@ get : OutputFile ĊĠĠĠ Ġval Ġoutput : ĠRegular File Property Ġ= Ġobjects . file Property () ĊĊĠĠĠ Ġ@ get : OutputFile ĊĠĠĠ Ġval Ġoutput Pretty : ĠRegular File Property Ġ= Ġobjects . file Property () ĊĊĠĠĠ Ġ@ Task Action ĊĠĠĠ Ġfun Ġaction () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġreport File Ġ= Ġoutput . get (). as File ĊĠĠĠĠĠĠĠ Ġval Ġreport Pretty File Ġ= Ġoutput Pretty . get (). as File ĊĊĠĠĠĠĠĠĠ Ġ// ĠCleanup Ġprior Ġexecution ĊĠĠĠĠĠĠĠ Ġreport File . delete () ĊĠĠĠĠĠĠĠ Ġreport Pretty File . delete () ĊĊĠĠĠĠĠĠĠ Ġval Ġartifacts Ġ= Ġartifacts . map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠArtifact ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent Identifier Ġ= Ġit . id . component Identifier , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfile Ġ= Ġit . file ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠGradle Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreport File . write Text ( artifacts . toJson ()) ĊĠĠĠĠĠĠĠ Ġreport Pretty File . write Text ( artifacts . to Pretty String ()) ĊĠĠĠ Ġ} Ċ } Ċ