package Ġcom . guid ove zz oni . greeting kotlin ; Ċ Ċ import Ġcom . android . build . gradle . App Extension Ċ import Ġcom . android . build . gradle . api . Source Kind Ċ import Ġcom . guid ove zz oni . greeting kotlin . logger . Custom Logging Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ Ċ class ĠG reeting Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠCustom Logging . getLogger ( G reeting Plugin :: class . java ) ĊĊĠĠĠ Ġoverride Ġfun Ġapply ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . extensions . create ( EXTENSION _ NAME , ĠG reeting Extension :: class . java ) ĊĠĠĠĠĠĠĠ Ġproject . tasks . create ( TASK _ NAME , ĠG reeting Task :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġlist Project Info ( project ) ĊĠĠĠĠĠĠĠ Ġlist Android Plugin Info ( project ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlist Project Info ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ("\ n ***** ĠProject ĠInfo Ġ********* * ") ĊĠĠĠĠĠĠĠ Ġprintln ("* ĠName =${ project . name } Ġ*** ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlist Android Plugin Info ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġandroid Ġ= Ġproject . extensions . find ByName (" android ") Ġas ĠApp Extension ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠException (" Not Ġan ĠAndroid Ġapplication ") ĊĊĠĠĠĠĠĠĠ Ġprintln ("\ n ***** ĠAndroid ĠExtension Ġ********* * ") ĊĠĠĠĠĠĠĠ Ġprintln ("* Ġproduct Fl avors =${ android . product Fl avors . names } Ġ*** ") Ċ // ĠĠĠĠĠĠĠ Ġprintln ("* Ġflavor Dimension List =${ android . flavor Dimension List . toSet ()} Ġ*** ") ĊĠĠĠĠĠĠĠ Ġprintln ("* Ġbuild Types =${ android . build Types . names } Ġ*** ") ĊĊĊĠĠĠĠĠĠĠ Ġprintln ("\ n ***** ĠAvailable ĠAndroid Ġvariants Ġ********* * ") ĊĠĠĠĠĠĠĠ Ġandroid . application Variants . all Ġ{ Ġandroid Variant Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("* ĠName =${ android Variant . name } Ġ*** ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("* Ġdescription =${ android Variant . description }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("* Ġdir Name =${ android Variant . dir Name }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("* Ġbase Name =${ android Variant . base Name }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("* Ġflavor Name =${ android Variant . flavor Name }") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("* Ġoutputs =${ android Variant . outputs }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("* Ġbuild Type =${ android Variant . build Type . name }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("* Ġmerged Flavor =${ android Variant . merged Flavor . name }") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("* Ġproduct Fl avors =${ android Variant . product Fl avors }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("* Ġsource Sets =${ android Variant . source Sets . toSet () }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("* Ġget Source Folders =${ android Variant . getSource Folders ( Source Kind . JAVA ). toSet () }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("* Ġgenerate Build Config Provider =${ android Variant . generate Build Config Provider . name }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("* ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEXT ENSION _ NAME Ġ= Ġ" greeting Plugin " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTASK _ NAME Ġ= Ġ" hello " ĊĠĠĠ Ġ} Ċ } Ċ