// ĠCopyright Ġ 2 0 2 0 ĠGl itch y Byte ĠLLC Ċ // ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ċ package Ġcom . gl itch y byte . gradle . plugin . build info Ċ Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ Ċ /** Ċ Ġ* ĠPlugin Ġto Ġaut ogener ate Ġa Ġjson Ġfile Ġwith Ġbuild Ġinformation . Ċ Ġ* Ġ< p > Ċ Ġ* ĠThe Ġgenerated Ġfields Ġare : Ċ Ġ* Ġ< pre > Ċ Ġ* ĠĠĠĠ Ġgroup : ĠProject Ġgroup Ġ( e . g ., Ġcom . gl itch y byte ) Ċ Ġ* ĠĠĠĠ Ġname : ĠProject Ġname Ġ( e . g ., ĠMy Awesome App ) Ċ Ġ* ĠĠĠĠ Ġversion : ĠProject Ġversion Ġ( e . g ., Ġ 1 . 0 . 0 ) Ċ Ġ* ĠĠĠĠ Ġdatetime : ĠDate Ġand Ġtime Ġof Ġbuild Ġ( e . g ., Ġ 2 0 2 0 1 1 2 7 1 0 2 7 3 3 ) Ċ Ġ* ĠĠĠĠ Ġcode : ĠUnique Ġcode Ġfor Ġthis Ġbuild Ġ( e . g ., Ġd 6 7 x 0 j ) Ċ Ġ* Ġ</ pre > Ċ Ġ*/ Ċ class ĠBuild Info Plugin : ĠPlugin < Project > Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠApply Ġthis Ġplugin Ġto Ġthe Ġgiven Ġproject . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġproject ĠThe Ġproject . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġapply ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠAdd ĠJava Ġplugin . ĊĠĠĠĠĠĠĠ Ġproject . plugins . apply (" java ") ĊĠĠĠĠĠĠĠ Ġ// ĠAdd Ġtask Ġand Ġextension Ġfor Ġconfiguration . ĊĠĠĠĠĠĠĠ Ġval Ġextension : ĠBuild Info Plugin Extension Ġ= Ġproject . extensions . create (" save Build Info ", ĠBuild Info Plugin Extension :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġsave Build Info Task Ġ Ġ= Ġproject . tasks . register (" save Build Info ", ĠSave Build Info Task :: class . java , Ġextension ) ĊĠĠĠĠĠĠĠ Ġ// ĠSet Ġas Ġa Ġdependency Ġof Ġprocess Resources Ġso Ġit 's Ġready Ġwith Ġother Ġresources . ĊĠĠĠĠĠĠĠ Ġproject . tasks . named (" process Resources ") Ġ{ Ġtask Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtask . depends On ( save Build Info Task ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ