package Ġcom . github . kn if em aster 0 0 7 . gradle . git version Ċ Ċ import Ġorg . eclipse . j git . lib . Repository Ċ import Ġorg . eclipse . j git . storage . file . File Repository Builder Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ Ċ import Ġorg . slf 4 j . LoggerFactory Ċ Ċ class ĠGit version Plugin : ĠPlugin < Project > Ġ{ ĊĠĠĠ Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger (" git - version - plugin ") !! ĊĊĠĠĠ Ġfun Ġrepo Init ( project : ĠProject ): ĠRepository ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFile Repository Builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Work Tree ( project . project Dir ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. read Environment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. find Git Dir () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġapply ( target : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġrepo Ġ= Ġrepo Init ( target ) ĊĠĠĠĠĠĠĠ Ġif Ġ( repo ?. work Tree Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn (" Git Ġrepository Ġnot Ġfound Ġin Ġproject Ġdir ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtarget . extensions . create (" git Version Details ", ĠGit version Extension :: class . java , Ġrepo ) ĊĠĠĠĠĠĠĠ Ġtarget . tasks . register (" print Version Details ", ĠPrint Details Task :: class . java ). configure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . group Ġ= Ġ" git " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . description Ġ= Ġ" Print Ġgit Ġversion Ġdetails " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }