package Ġcom . github . tur ans ky . k fc . gradle . plugin Ċ Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . publish . Publishing Extension Ċ import Ġorg . gradle . api . publish . maven . Maven P om Ċ import Ġorg . gradle . api . publish . maven . Maven Publication Ċ import Ġorg . gradle . api . tasks . bund ling . Jar Ċ import Ġorg . gradle . kotlin . dsl .* Ċ import Ġorg . gradle . plugins . signing . Signing Extension Ċ import Ġorg . gradle . plugins . signing . Signing Plugin Ċ import Ġorg . gradle . api . publish . maven . plugins . Maven Publish Plugin Ġas ĠStandard Maven Publish Plugin Ċ Ċ class ĠMaven Central Publish Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġapply ( target : ĠProject ): ĠUnit Ġ= Ġwith ( target ) Ġ{ ĊĠĠĠĠĠĠĠ Ġplugins . with Id ( Kotlin Plugin . MULTI PLATFORM ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure Publication () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġplugins . with Id ( Kotlin Plugin . JVM ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure Publication () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġplugins . with Id ( Kotlin Plugin . JS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure Publication () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠProject . configure Publication () Ġ{ ĊĠĠĠĠĠĠĠ Ġplugins . apply ( Standard Maven Publish Plugin :: class ) ĊĠĠĠĠĠĠĠ Ġplugins . apply ( Signing Plugin :: class ) ĊĊĠĠĠĠĠĠĠ Ġval Ġrelease Mode Ġ= Ġhas Property (" signing . key Id ") ĊĊĠĠĠĠĠĠĠ Ġfun Ġpom Property ( name : ĠString ): ĠString Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproperty (" k fc . pom .$ name ") Ġas ĠString ĊĊĠĠĠĠĠĠĠ Ġval Ġj vm Mode Ġ= Ġplugins . has Plugin ( Kotlin Plugin . JVM ) ĊĠĠĠĠĠĠĠ Ġval Ġjavadoc Jar Ġ= Ġif Ġ( jvm Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtasks . register (" empty Javadoc Jar ", ĠJar :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarchive Classifier . set (" javadoc ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġnull ĊĊĠĠĠĠĠĠĠ Ġconfigure < Publishing Extension > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublications Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate < Maven Publication >(" maven Kotlin ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( components [" kotlin "]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( tasks . named (" kotlin Sources Jar "). get ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( javadoc Jar Ġ!= Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( javadoc Jar . get ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpom . configure (:: pom Property , Ġrelease Mode ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( release Mode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpublishing Ġ= Ġextensions . get ByName < Publishing Extension >(" publishing ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure < Signing Extension > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsign ( publishing . publications ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠMaven P om . configure ( ĊĠĠĠ Ġpom Property : Ġ( name : ĠString ) Ġ-> ĠString , ĊĠĠĠ Ġrelease Mode : ĠBoolean Ċ ) Ġ{ ĊĠĠĠ Ġval Ġproject Url Ġ= Ġpom Property (" url ") ĊĠĠĠ Ġval Ġconnection Url Ġ= Ġ" scm : git :$ project Url . git " ĊĊĠĠĠ Ġname . set ( pom Property (" name ")) ĊĠĠĠ Ġdescription . set ( pom Property (" description ")) ĊĠĠĠ Ġurl . set ( project Url ) ĊĠĠĠ Ġin ception Year . set ( pom Property (" inception . year ")) ĊĊĠĠĠ Ġlicenses Ġ{ ĊĠĠĠĠĠĠĠ Ġlicense Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" The ĠApache ĠLicense , ĠVersion Ġ 2 . 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" http :// www . apache . org / licenses / LICENSE - 2 . 0 . txt ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġif Ġ( release Mode ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdevelopers Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid . set ( pom Property (" developer . id ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( pom Property (" developer . name ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail . set ( pom Property (" developer . email ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsc m Ġ{ ĊĠĠĠĠĠĠĠ Ġconnection . set ( connection Url ) ĊĠĠĠĠĠĠĠ Ġdeveloper Connection . set ( connection Url ) ĊĠĠĠĠĠĠĠ Ġurl . set ( project Url ) ĊĠĠĠ Ġ} Ċ } Ċ