package Ġtop . z loop . gradle . plugins Ċ Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġtop . z loop . gradle . tasks . Build Time Kotlin Task Ċ Ċ class ĠBuild Time Kotlin Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġapply ( target : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtarget . logger . lifecycle (" My Plugin Ġwas Ġsuccessfully Ġapplied Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" to Ġyour Ġproject Ġnamed Ġ'${ target . name }' !") ĊĊĠĠĠĠĠĠĠ Ġ// ĠThis Ġis Ġan Ġexample Ġof Ġhow Ġyou Ġcan Ġiterate Ġall Ġapp Ġvariants ĊĠĠĠĠĠĠĠ Ġ// Ġyour ĠAndroid Ġproject Ġdefines . ĊĠĠĠĠĠĠĠ Ġproject . android . app ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. application Variants ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. matching Ġ{ Ġit . build Type . name Ġ== Ġ" debug " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. all Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠMake Ġgreat Ġuse Ġof Ġall Ġdebug Ġvariants . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠAccess Ġthe Ġ` android ` Ġextension Ġof Ġthis Ġproject . ĠIf Ġthe Ġproject Ġis Ġnot Ġan Ċ Ġ* ĠAndroid Ġapp Ġor Ġlibrary Ġmodule , Ġthis Ġmethod Ġwill Ġthrow . Ċ Ġ*/ Ċ val ĠProject . android : ĠBase Extension ĊĠĠĠ Ġget () Ġ= Ġextensions . find ByName (" android ") Ġas ? ĠBase Extension ĊĠĠĠĠĠĠĠ Ġ?: Ġerror (" Project Ġ'$ name ' Ġis Ġnot Ġan ĠAndroid Ġmodule . ĠCan 't Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" access Ġ' android ' Ġextension .") Ċ Ċ /** Ċ Ġ* ĠAc cesses Ġthe Ġapp Ġmodule - specific Ġextensions Ġof Ġan ĠAndroid Ġmodule . Ċ Ġ*/ Ċ val ĠBase Extension . app : ĠApp Extension ĊĠĠĠ Ġget () Ġ= Ġthis Ġas ? ĠApp Extension ĊĠĠĠĠĠĠĠ Ġ?: Ġerror (" Android Ġmodule Ġis Ġnot Ġan Ġapp Ġmodule . ĠCan 't Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" access Ġ' android ' Ġapp Ġextension .")