/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 Ġthe Ġoriginal Ġauthor Ġor Ġauthors . Ċ Ġ* Ċ Ġ* Ġ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 . github . grad len exus . publish plugin Ċ Ċ import Ġjava . time . Duration Ċ import Ġorg . gradle . api . Action Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . provider . Property Ċ import Ġorg . gradle . kotlin . dsl . container Ċ import Ġorg . gradle . kotlin . dsl . newInstance Ċ import Ġorg . gradle . kotlin . dsl . property Ċ Ċ @ Suppress (" Un stable Api Usage ") Ċ open Ġclass ĠN exus Publish Extension ( project : ĠProject ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġconst Ġval ĠNAME Ġ= Ġ" nexus Publishing " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġuse Staging : ĠProperty < Boolean > Ġ= Ġproject . objects . property < Boolean >(). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġset ( project . provider Ġ{ Ġ! project . version . toString (). endsWith ("- SNAPSHOT ") Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġpackage Group : ĠProperty < String > Ġ= Ġproject . objects . property < String >(). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġset ( project . provider Ġ{ Ġproject . group . toString () Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġclient Timeout : ĠProperty < Duration > Ġ= Ġproject . objects . property < Duration >(). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġset ( Duration . of Minutes ( 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġconnect Timeout : ĠProperty < Duration > Ġ= Ġproject . objects . property < Duration >(). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġset ( Duration . of Minutes ( 1 )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġrepositories : ĠN exus Repository Container Ġ= ĠDefault N exus Repository Container ( project . container ( N exus Repository :: class ) Ġ{ Ġname Ġ-> ĊĠĠĠĠĠĠĠ Ġproject . objects . newInstance ( N exus Repository :: class , Ġname , Ġproject ) ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġfun Ġrepositories ( action : ĠAction < in ĠN exus Repository Container >) Ġ= Ġaction . execute ( repositories ) Ċ } Ċ