package Ġtop . better code . gradle . publish Ċ Ċ import Ġgro ovy . lang . Closure Ċ import Ġgro ovy . util . Node Ċ import Ġgro ovy . util . NodeList Ċ import Ġio . code arte . gradle . nexus . N exus Staging Extension Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . Xml Provider Ċ import Ġorg . gradle . api . artifacts . repositories . Maven Artifact Repository Ċ import Ġorg . gradle . api . plugins . Java Plugin Ċ import Ġorg . gradle . api . plugins . Java Plugin Convention Ċ import Ġorg . gradle . api . publish . Publishing Extension Ċ import Ġorg . gradle . api . publish . maven . Maven Publication Ċ import Ġorg . gradle . api . publish . tasks . Generate Module Metadata Ċ import Ġorg . gradle . api . tasks . javadoc . Javadoc Ċ import Ġorg . gradle . external . javadoc . Standard Javadoc Doc let Options Ċ import Ġorg . gradle . jvm . tasks . Jar Ċ import Ġorg . gradle . plugins . signing . Signing Extension Ċ // import Ġorg . jetbrains . dok ka . D ok ka Version Ċ import Ġorg . jetbrains . dok ka . gradle . D ok ka Task Ċ import Ġjava . net . URI Ċ Ċ /** Ċ Ġ* Ġ@ author ĠPeter ĠW u Ċ Ġ* Ġ@ since Ċ Ġ*/ Ċ /** Ċ Ġ* Ġèİ·åıĸ åįķ ä¸Ģ èĬĤçĤ¹ Ċ Ġ*/ Ċ fun ĠNode . get At ( name : ĠString ): ĠNode ? Ġ{ ĊĠĠĠ Ġval Ġnode List Ġ= Ġget ( name ) Ġas ĠNode List ĊĠĠĠ Ġreturn Ġif Ġ( node List . size Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġnode List [ 0 ] Ġas ĠNode ĊĠĠĠ Ġelse Ġnull Ċ } Ċ Ċ /** Ċ Ġ* Ġéħįç½® å·¥åħ· ç±» Ċ Ġ*/ Ċ class ĠKotlin Closure 1 < in ĠT Ġ: ĠAny , ĠV Ġ: ĠAny >( ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġval Ġfunction : ĠT . () Ġ-> ĠV ?, ĊĠĠĠ Ġowner : ĠAny ? Ġ= Ġnull , ĊĠĠĠ Ġthis Object : ĠAny ? Ġ= Ġnull Ċ ) Ġ: ĠClosure < V ? >( owner , Ġthis Object ) Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ å®ŀéĻħ è°ĥçĶ¨ æĸ¹æ³ķ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Suppress (" unused ") Ġ// Ġto Ġbe Ġcalled Ġdynamically Ġby ĠGro ovy ĊĠĠĠ Ġfun Ġdo Call ( it : ĠT ): ĠV ? Ġ= Ġit . function () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠserialVersionUID : ĠLong Ġ= Ġ 1 L ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġéħįç½® å·¥åħ· ç±» Ċ Ġ*/ Ċ fun Ġ< T Ġ: ĠAny > ĠAny . closure Of ( action : ĠT . () Ġ-> ĠUnit ): ĠClosure < Any ?> Ġ= ĊĠĠĠ ĠKotlin Closure 1 ( action , Ġthis , Ġthis ) Ċ Ċ /** Ċ Ġ* ĠæĬ ½ è±¡ ç±» Ċ Ġ*/ Ċ abstract Ġclass ĠAbstract Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġéħįç½® dok ka Doc ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġfun Ġdok ka Task ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . tasks . create (" dok ka Javadoc ", ĠD ok ka Task :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . output Format Ġ= Ġ" javadoc " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . output Directory Ġ= Ġ"${ project . build Dir }/ dok ka Javadoc " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . configuration . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno Android Sdk Link Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno J dk Link Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno Std lib Link Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġdok ka Javadoc . offline Mode . set ( true ) Ċ // ĠĠĠĠĠĠĠ Ġdok ka Javadoc . plugins . dependencies . add ( project . dependencies . create (" org . jetbrains . dok ka : kotlin - as - java - plugin :${ D ok ka Version . version } ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åħ¬ çĶ¨ éħįç½® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġfun Ġconfig Publish ( project : ĠProject , Ġpublication Name : ĠArray < String > Ġ= ĠarrayOf ()) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( project . group . toString (). isBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġproject . tasks . with Type ( Javadoc :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( it . options Ġas ĠStandard Javadoc Doc let Options ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencoding Ġ= Ġproject . find Property (" project . encoding ") Ġas ? ĠString Ġ?: Ġ" UTF - 8 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchar Set Ġ= Ġproject . find Property (" project . encoding ") Ġas ? ĠString Ġ?: Ġ" UTF - 8 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Author Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Version Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġproject Url Ġ= Ġproject . find Property (" project Url ") Ġas ? ĠString ĊĠĠĠĠĠĠĠ Ġval Ġproject V cs Url Ġ= Ġproject . find Property (" vcs Url ") Ġas ? ĠString ĊĊĠĠĠĠĠĠĠ Ġconfigure Publishing ( project , Ġproject Url , Ġproject V cs Url ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpublication Names Ġ= Ġmutable Set Of < String >() ĊĠĠĠĠĠĠĠ Ġpublication Names . add (" maven Java ") ĊĠĠĠĠĠĠĠ Ġpublication Names . addAll ( publication Name ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( project . has Property (" signing . key Id ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . extensions . getBy Type ( Signing Extension :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsign ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . extensions . getBy Type ( Publishing Extension :: class . java ). publications . find ByName ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" maven Java " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġproject . tasks . get ByName (" publish "). depends On (" publish To Maven Local ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġéħįç½® ĠPublish ing ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġconfigure Publishing ( project : ĠProject , Ġproject Url : ĠString ?, Ġproject V cs Url : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġproject . tasks . with Type ( Generate Module Metadata :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġproject . extensions . configure ( Publishing Extension :: class . java ) Ġ{ Ġp Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . find Property (" maven Repos ") ?. toString ()?. split (",") ?. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmaven Repo Name Ġ= Ġproject . find Property ("$ it . name ") Ġas ? ĠString Ġ?: Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmaven Repo Url Ġ= Ġproject . find Property ("$ it . url ") Ġas ? ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmaven Repo Username Ġ= Ġproject . find Property ("$ it . username ") Ġas ? ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmaven Repo Password Ġ= Ġproject . find Property ("$ it . password ") Ġas ? ĠString ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( project . version . toString (). endsWith (" SNAPSHOT ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Repo Name Ġ= Ġproject . find Property ("$ it . snapshots . name ") Ġas ? ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġmaven Repo Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Repo Url Ġ= Ġproject . find Property ("$ it . snapshots . url ") Ġas ? ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġmaven Repo Url ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Repo Username Ġ= Ġproject . find Property ("$ it . snapshots . username ") Ġas ? ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġmaven Repo Username ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Repo Password Ġ= Ġproject . find Property ("$ it . snapshots . password ") Ġas ? ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġmaven Repo Password ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( maven Repo Url Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġp . repositories Ġ{ Ġhandler Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhandler . maven Ġ{ Ġrepository Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . name Ġ= Ġmaven Repo Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . url Ġ= ĠURI ( maven Repo Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . is Allow In secure Protocol Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . credentials Ġ{ Ġcredentials Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials . username Ġ= Ġmaven Repo Username ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials . password Ġ= Ġmaven Repo Password ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġp . publications . create (" maven Java ", ĠMaven Publication :: class . java ) Ġ{ Ġm Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( project . plugins . has Plugin (" war ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm . from ( project . components . get ByName (" web ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm . from ( project . components . get ByName (" java ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm . artifact ( project . tasks . get ByName (" sources Jar ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . classifier Ġ= Ġ" sources " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm . artifact ( project . tasks . get ByName (" javadoc Jar ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . classifier Ġ= Ġ" javadoc " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm . pom . with Xml ( configure P om Xml ( project , Ġproject Url , Ġproject V cs Url )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġéħįç½® pom . xml çĽ¸åħ³ ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġconfigure P om Xml ( ĊĠĠĠĠĠĠĠ Ġproject : ĠProject , ĊĠĠĠĠĠĠĠ Ġproject Url : ĠString ?, ĊĠĠĠĠĠĠĠ Ġproject V cs Url : ĠString ? ĊĠĠĠ Ġ): Ġ( Xml Provider ) Ġ-> ĠUnit Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġit . as Node () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ* Ġéħįç½® pom . xml çĽ¸åħ³ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( get At (" packaging ") Ġ== Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Node (" packaging ", Ġif Ġ( project . plugins . has Plugin (" war ")) Ġ" war " Ġelse Ġ" jar ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure P om Xml ( project , Ġproject Url , Ġproject V cs Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ åīį ç½® éħįç½® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġfun Ġbefore Config igure ( project : ĠProject ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! project . plugins . has Plugin (" maven - publish ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . plugins . apply (" maven - publish ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( project . has Property (" signing . key Id ") Ġ&& Ġ! project . plugins . has Plugin (" signing ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . plugins . apply (" signing ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! project . root Project . plugins . has Plugin (" io . code arte . nexus - staging ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . root Project . plugins . apply (" io . code arte . nexus - staging ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġproject . tasks . with Type ( Javadoc :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Fail OnError Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ Ġæ º Ĳ æĸĩä»¶ æīĵ åĮħ Task ĊĠĠĠĠĠĠĠ Ġproject . plugin Manager . apply ( Java Plugin :: class . java ) ĊĠĠĠĠĠĠĠ Ġproject . tasks . create (" sources Jar ", ĠJar :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . depends On (" classes ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . archive Classifier . set (" sources ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . from ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . convention . get Plugin ( Java Plugin Convention :: class . java ). source Sets . get ByName ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" main " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). all Source ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġproject . tasks . named (" jar ", ĠJar :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . manifest Ġ{ Ġmanifest Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest . attributes ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Manifest - Version " Ġto Ġproject . version , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Implementation - Title " Ġto Ġ"${ if Ġ( project Ġ!= Ġproject . root Project ) Ġ"${ project . root Project . name } :" Ġelse Ġ"" }${ project . name }", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Implementation - Version " Ġto Ġproject . version ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġproject . tasks . named (" publish ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . do Last Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . extensions . getBy Type ( Publishing Extension :: class . java ). repositories . forEach Ġ{ Ġrepository Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( repository Ġis ĠMaven Artifact Repository ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("${ project . name } Ġpublished Ġto : Ġ${ repository . url }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("${ project . name } Ġpublished Ġto : Ġ${ repository . name }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġextension Ġ= Ġproject . root Project . extensions . getBy Type ( N exus Staging Extension :: class . java ) ĊĠĠĠĠĠĠĠ Ġextension . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// required Ġonly Ġfor Ġprojects Ġregistered Ġin ĠSon atype Ġafter Ġ 2 0 2 1 - 0 2 - 2 4 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġserver Url Ġ= Ġproject . root Project . find Property (" nexus Staging . server Url ") ?. toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġ" https :// s 0 1 . oss . son atype . org / service / local /" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// optional Ġif Ġpackage Group Ġ== Ġproject . getGroup () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpackage Group Ġ= Ġproject . root Project . find Property (" nexus Staging . package Group ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( package Group Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . package Group Ġ= Ġpackage Group . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// when Ġnot Ġdefined Ġwill Ġbe Ġgot Ġfrom Ġserver Ġusing Ġ" package Group " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstaging Profile Id Ġ= Ġproject . root Project . find Property (" nexus Staging . staging Profile Id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( staging Profile Id Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . staging Profile Id Ġ= Ġstaging Profile Id . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstaging Repository Id Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . root Project . find Property (" nexus Staging . staging Repository Id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( staging Repository Id Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . staging Repository Id . set ( staging Repository Id . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmaven Repo Username Ġ= Ġproject . find Property (" maven Repo . username ") Ġas ? ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġmaven Repo Password Ġ= Ġproject . find Property (" maven Repo . password ") Ġas ? ĠString ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( project . version . toString (). endsWith (" SNAPSHOT ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Repo Username Ġ= Ġproject . find Property (" maven Repo . snapshots . username ") Ġas ? ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġmaven Repo Username ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Repo Password Ġ= Ġproject . find Property (" maven Repo . snapshots . password ") Ġas ? ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġmaven Repo Password ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . username Ġ= Ġmaven Repo Username ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . password Ġ= Ġmaven Repo Password ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġéħįç½® pom . xml çĽ¸åħ³ ä¿¡æģ¯ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġfun ĠNode . configure P om Xml ( ĊĠĠĠĠĠĠĠ Ġproject : ĠProject , ĊĠĠĠĠĠĠĠ Ġproject Url : ĠString ?, ĊĠĠĠĠĠĠĠ Ġproject V cs Url : ĠString ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġappend Node (" name ", Ġproject . name ) ĊĠĠĠĠĠĠĠ Ġappend Node ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" description ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! project . description . isNull Or Blank ()) Ġproject . description Ġelse Ġproject . name ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! project Url . isNull Or Blank ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġappend Node (" url ", Ġproject Url ) ĊĊĠĠĠĠĠĠĠ Ġval Ġlicense Ġ= Ġappend Node (" licenses "). append Node (" license ") ĊĠĠĠĠĠĠĠ Ġlicense . append Node (" name ", Ġproject . find Property (" license . name ")) ĊĠĠĠĠĠĠĠ Ġlicense . append Node (" url ", Ġproject . find Property (" license . url ")) ĊĠĠĠĠĠĠĠ Ġlicense . append Node (" distribution ", Ġproject . find Property (" license . distribution ")) ĊĊĠĠĠĠĠĠĠ Ġval Ġdeveloper Ġ= Ġappend Node (" developers "). append Node (" developer ") ĊĠĠĠĠĠĠĠ Ġdeveloper . append Node (" id ", Ġproject . find Property (" developer . id ")) ĊĠĠĠĠĠĠĠ Ġdeveloper . append Node (" name ", Ġproject . find Property (" developer . name ")) ĊĠĠĠĠĠĠĠ Ġdeveloper . append Node (" email ", Ġproject . find Property (" developer . email ")) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( project V cs Url Ġ!= Ġnull Ġ&& Ġproject V cs Url . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsc m Ġ= Ġappend Node (" scm ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc m . append Node (" url ", Ġproject V cs Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtag Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( project V cs Url . contains (" git ")) Ġ" git " Ġelse Ġif Ġ( project V cs Url . contains (" svn ")) Ġ" svn " Ġelse Ġproject V cs Url ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc m . append Node (" connection ", Ġ" scm :$ tag :$ project V cs Url ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc m . append Node (" developer Connection ", Ġ" scm :$ tag :$ project V cs Url ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ