package Ġcom . kar umi . kotlin snapshot . plugin Ċ Ċ import Ġcom . kar umi . kotlin snapshot . plugin . task . Kotlin Snapshot Task Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . artifacts . Dependency Resolution Listener Ċ import Ġorg . gradle . api . artifacts . Res olvable Dependencies Ċ Ċ open Ġclass ĠKotlin Snapshot Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġapply ( target : ĠProject ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġtarget Ġ?: Ġreturn ĊĊĠĠĠĠĠĠĠ Ġadd Kotlin Snapshot Dependency ( target ) ĊĠĠĠĠĠĠĠ Ġtarget . after Evaluate Ġ{ Ġadd Tasks ( target ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Tasks ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġupdate Snapshots Task Ġ= Ġproject . tasks . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Snapshot Task . Update Snapshots . name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Snapshot Task . Update Snapshots :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġpurge Snapshots Task Ġ= Ġproject . tasks . create ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Snapshot Task . Purge Snapshots . name , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠKotlin Snapshot Task . Purge Snapshots :: class . java ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Task Ġ= Ġproject . tasks . find ByName (" test ") ĊĠĠĠĠĠĠĠ Ġupdate Snapshots Task . final ized By ( test Task ) ĊĠĠĠĠĠĠĠ Ġpurge Snapshots Task . final ized By ( test Task ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġadd Kotlin Snapshot Dependency ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . gradle . addListener ( object Ġ: ĠDependency Resolution Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore Resolve ( dependencies : ĠRes olvable Dependencies ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdependency Ġ= Ġproject . dependencies ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create (" com . kar umi . kotlin snapshot : core : 2 . 2 . 1 - SNAPSHOT ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . dependencies . add (" test Implementation ", Ġdependency ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . gradle . remove Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter Resolve ( dependencies : ĠRes olvable Dependencies ?) Ġ{} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ