package Ġit . nic olas far ab eg oli . gradle . central Ċ Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . provider . Property Ċ import Ġorg . gradle . kotlin . dsl . property Ċ Ċ /** Ċ Ġ* ĠExtension Ġused Ġto Ġconfigure Ġthe Ġplugin Ġfor Ġthe Ġ[ project ]. Ċ Ġ*/ Ċ open Ġclass ĠPublish To Maven Central Extension ( private Ġval Ġproject : ĠProject ) Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProject Ġname . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval ĠprojectName : ĠProperty < String > Ġ= Ġproject . property WithDefault ( project . name ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProject Ġdescription . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġproject Description : ĠProperty < String > Ġ= Ġproject . property WithDefault ( project . description ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠName Ġof Ġthe Ġlicense . ĠUse Ġthe ĠSPDX Ġshort Ġidentifier , Ġsee Ġ[ link ]( https :// opensource . org / licenses ). ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġlicense Name : ĠProperty < String > Ġ= Ġproject . property WithDefault (" Apache - 2 . 0 ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe ĠURL Ġof Ġthe Ġchose Ġlicense . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġlicense Url : ĠProperty < String > Ġ= Ġproject . property WithDefault (" https :// www . apache . org / licenses / LICENSE - 2 . 0 ") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠS CM Ġconnection ĠURL . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġsc m Connection : ĠProperty < String > Ġ= Ġproject . property WithDefault (" git : git @ github . com : nic olas f ara /${ project . name }") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠProject 's ĠURL , Ġtypically Ġa ĠGitHub ĠURL Ġrepo . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġproject Url : ĠProperty < String > Ġ= Ġproject . property WithDefault (" https :// github . com / nic olas f ara /${ project . name }") ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠConfiguration Ġfor Ġthe ĠMaven ĠCentral Ġrepository . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġmaven Central : ĠRepository Ġ= ĠRepository ( ĊĠĠĠĠĠĠĠ ĠRepository . maven Central Name , ĊĠĠĠĠĠĠĠ Ġurl Ġ= ĠRepository . maven Central Url , ĊĠĠĠĠĠĠĠ Ġusername Ġ= Ġproject . property WithDefault Provider Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . getenv (" OSS RH _ USERNAME ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġproject . properties [" maven Central Username "] ?. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġproject . properties [" son atype Username "] ?. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġproject . properties [" oss rh Username "] ?. toString () ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġpassword Ġ= Ġproject . property WithDefault Provider Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . getenv (" OSS RH _ PASSWORD ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġproject . properties [" maven Central Password "] ?. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġproject . properties [" son atype Password "] ?. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġproject . properties [" oss rh Password "] ?. toString () ĊĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠ Ġn exus Url Ġ= ĠRepository . maven Central N exus Url ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUtility Ġfunction Ġfor Ġcreate Ġnew Ġcustom Ġrepository . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġrepository ( ĊĠĠĠĠĠĠĠ Ġurl : ĠString , ĊĠĠĠĠĠĠĠ Ġname : ĠString , ĊĠĠĠĠĠĠĠ Ġconfig : ĠRepository Descriptor . () Ġ-> ĠUnit Ġ= Ġ{ Ġ} ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrepository Descriptor Ġ= ĠRepository Descriptor ( project , Ġname ). apply ( config ) ĊĠĠĠĠĠĠĠ Ġval Ġrepo Ġ= ĠRepository ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġrepository Descriptor . name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġurl , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġrepository Descriptor . username , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġrepository Descriptor . password , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġn exus Url Ġ= Ġrepository Descriptor . nexus Url ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġproject . after Evaluate Ġ{ Ġit . configure Repository ( repo ) Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠRepository Descriptor Ġinternal Ġconstructor ( ĊĠĠĠ Ġproject : ĠProject , ĊĠĠĠ Ġvar Ġname : ĠString , Ċ ) Ġ{ ĊĠĠĠ Ġval Ġusername : ĠProperty < String > Ġ= Ġproject . objects . property () ĊĠĠĠ Ġval Ġpassword : ĠProperty < String > Ġ= Ġproject . objects . property () ĊĠĠĠ Ġval Ġn exus Url : ĠString ? Ġ= Ġnull Ċ } Ċ