/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 . ĠHer man ĠChe ung Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ* Ċ Ġ* Ċ Ġ*/ Ċ Ċ package Ġio . hk hc . gradle . internal . bin tray Ċ Ċ import Ġgro ovy . lang . Gro ovy Object Ċ import Ġio . hk hc . gradle . J arb ird Pub Ċ import Ġio . hk hc . gradle . internal . LOG _ PREFIX Ċ import Ġio . hk hc . gradle . internal . is Multi Project Root Ċ import Ġio . hk hc . gradle . internal . is Single Project Ċ import Ġio . hk hc . gradle . internal . need Repos WithType Ċ import Ġio . hk hc . gradle . internal . repo . Art ifactory Repo Spec Ċ import Ġorg . gradle . api . Gradle Exception Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . kotlin . dsl . delegate Closure Of Ċ import Ġorg . gradle . kotlin . dsl . get Plugin ByName Ċ import Ġorg . jfrog . gradle . plugin . art ifactory . dsl . Art ifactory Plugin Convention Ċ import Ġorg . jfrog . gradle . plugin . art ifactory . dsl . Publisher Config Ċ import Ġorg . jfrog . gradle . plugin . art ifactory . dsl . Resolver Config Ċ Ċ @ Suppress (" Spread Operator ") Ċ class ĠArt ifactory Config ( ĊĠĠĠ Ġprivate Ġval Ġproject : ĠProject , ĊĠĠĠ Ġprivate Ġval Ġpub s : ĠList < J arb ird Pub > Ċ ) Ġ{ ĊĊĠĠĠ Ġfun Ġconfig () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġassert ( pub s . need Repos WithType < Art ifactory Repo Spec >()) ĊĊĠĠĠĠĠĠĠ Ġval Ġconvention Ġ= Ġproject . convention . get Plugin ByName < Art ifactory Plugin Convention >(" art ifactory ") ĊĊĠĠĠĠĠĠĠ Ġ// Ġat Ġthis Ġpoint Ġwe Ġcan Ġassume Ġthat ĊĠĠĠĠĠĠĠ Ġ// Ġ- Ġall ĠArt ifactory Repo Spec Ġin Ġall Ġpub s Ġare Ġthe Ġsame . ĊĠĠĠĠĠĠĠ Ġ// Ġ- Ġall Ġcoordinate Ġare Ġeither Ġall Ġrelease Ġor Ġall Ġsnapshot ĊĊĠĠĠĠĠĠĠ Ġif Ġ( pub s . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠGradle Exception (" No Ġpub s Ġto Ġconfig ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmodel Ġ= ĠArt ifactory Config Model ( pub s ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( model . needs Art ifactory ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . is Single Project () Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconvention . config Single ( model ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . is Multi Project Root () Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconvention . config Single ( model ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠArt ifactory Plugin Convention . config Single ( ĊĠĠĠĠĠĠĠ Ġmodel : ĠArt ifactory Config Model ĊĠĠĠ Ġ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġproject . logger . debug ("$ LOG _ PREFIX Ġconfigure ĠArt ifactory Ġplugin Ġfor Ġsingle Ġproject ") ĊĊĠĠĠĠĠĠĠ Ġset Context Url ( model . context Url ) ĊĊĠĠĠĠĠĠĠ Ġpublish ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate Closure Of < Publisher Config > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate Closure Of < Gro ovy Object > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Property (" repo Key ", Ġmodel . repo Spec . repo Key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Property (" username ", Ġmodel . repo Spec . username ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Property (" password ", Ġmodel . repo Spec . password ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Property (" maven ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdefaults ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate Closure Of < Gro ovy Object > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvoke Method (" publications ", Ġmodel . publications . to Typed Array ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Property (" publish Artifacts ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Property (" publish P om ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Property (" publish I vy ", Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġresolve ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelegate Closure Of < Resolver Config > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Property (" repo Key ", Ġmodel . repo Spec . repo Key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ