package Ġorg . jetbrains . intellij . dependency Ċ Ċ import Ġgro ovy . transform . Compile Static Ċ import Ġorg . gradle . api . Action Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . artifacts . Dependency Ċ import Ġorg . gradle . api . artifacts . repositories . Maven Artifact Repository Ċ import Ġorg . jetbrains . intellij . debug Ċ import Ġorg . jetbrains . intellij . utils . Dependencies Downloader Ċ import Ġorg . jetbrains . intellij . utils . maven Repository Ċ import Ġjava . io . File Ċ Ċ interface ĠMaven Repository Ġ: ĠPlugins Repository Ġ{ ĊĊĠĠĠ Ġvar Ġresolved Dependency : ĠBoolean ĊĊĠĠĠ Ġfun Ġget Plugin File ( project : ĠProject , Ġdependency : ĠDependency , Ġrepository : ĠMaven Artifact Repository , Ġurl : ĠString , Ġcontext : ĠString ?): ĠFile ? Ġ= ĊĠĠĠĠĠĠĠ Ġrun Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . objects . newInstance ( Dependencies Downloader :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. download From Repository ( context , Ġ{ Ġdependency Ġ}, Ġ{ Ġrepository Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. first (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresolved Dependency Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. get OrNull () ĊĊĠĠĠ Ġfun Ġpost Resolve ( project : ĠProject , Ġfunc : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( resolved Dependency ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfunc . invoke () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Compile Static Ċ class ĠMaven Repository Plugin By Action ( private Ġval Ġmaven : ĠAction < in ĠMaven Artifact Repository >) Ġ: ĠMaven Repository Ġ{ ĊĊĠĠĠ Ġoverride Ġvar Ġresolved Dependency Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġresolve ( project : ĠProject , Ġplugin : ĠPlugin Dependency Not ation , Ġcontext : ĠString ?): ĠFile ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdependency Ġ= Ġplugin . to Dependency ( project ) ĊĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= Ġproject . repositories . maven ( maven ) ĊĠĠĠĠĠĠĠ Ġreturn Ġget Plugin File ( project , Ġdependency , Ġrepository , Ġrepository . url . toString (), Ġcontext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpost Resolve ( project : ĠProject , Ġcontext : ĠString ?) Ġ= ĊĠĠĠĠĠĠĠ Ġpost Resolve ( project ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= Ġproject . repositories . maven ( maven ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdebug ( context , Ġ" Adding ĠMaven Ġplugins Ġrepository : Ġ${ repository . url }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . repositories . maven ( maven ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ @ Compile Static Ċ class ĠMaven Repository Plugin ( private Ġval Ġrepository Url : ĠString ) Ġ: ĠMaven Repository Ġ{ ĊĊĠĠĠ Ġoverride Ġvar Ġresolved Dependency Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġresolve ( project : ĠProject , Ġplugin : ĠPlugin Dependency Not ation , Ġcontext : ĠString ?): ĠFile ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdependency Ġ= Ġplugin . to Dependency ( project ) ĊĠĠĠĠĠĠĠ Ġval Ġmaven Repository Ġ= Ġproject . repositories . maven Repository ( repository Url ) ĊĠĠĠĠĠĠĠ Ġreturn Ġget Plugin File ( project , Ġdependency , Ġmaven Repository , Ġrepository Url , Ġcontext ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġpost Resolve ( project : ĠProject , Ġcontext : ĠString ?) Ġ= ĊĠĠĠĠĠĠĠ Ġpost Resolve ( project ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdebug ( context , Ġ" Adding ĠMaven Ġplugins Ġrepository : Ġ$ repository Url ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . repositories . maven Repository ( repository Url ) ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ