import Ġjava . util .* Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġkotlin (" multi platform ") Ġversion Ġ" 1 . 5 . 2 0 " ĊĠĠĠ Ġ` maven - publish ` ĊĠĠĠ Ġsigning Ċ } Ċ Ċ group Ġ= Ġ" com . elect rit " Ċ version Ġ= Ġ" 2 . 1 . 0 - SNAPSHOT " Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġmaven Central () Ċ } Ċ Ċ kotlin Ġ{ ĊĠĠĠ Ġj vm Ġ{ ĊĠĠĠĠĠĠĠ Ġcompil ations . all Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġj vm Target Ġ= Ġ" 1 . 8 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġjs ( IR ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbrowser Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtest Task Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse K arma Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse Chrome Head less () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwebpack Config . css Support . enabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinaries . executable () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġhost Os Ġ= ĠSystem . getProperty (" os . name ") ĊĠĠĠ Ġval Ġis M ing w X 6 4 Ġ= Ġhost Os . startsWith (" Windows ") ĊĠĠĠ Ġval Ġnative Target Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġhost Os Ġ== Ġ" Mac ĠOS ĠX " Ġ-> Ġmac os X 6 4 (" native ") ĊĠĠĠĠĠĠĠ Ġhost Os Ġ== Ġ" Linux " Ġ-> Ġlinux X 6 4 (" native ") ĊĠĠĠĠĠĠĠ Ġis M ing w X 6 4 Ġ-> Ġm ing w X 6 4 (" native ") ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠGradle Exception (" Host ĠOS Ġis Ġnot Ġsupported Ġin ĠKotlin / Native .") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsource Sets Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcommon Main Ġby Ġgetting ĊĠĠĠĠĠĠĠ Ġval Ġcommon Test Ġby Ġgetting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" test ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġj vm Main Ġby Ġgetting ĊĠĠĠĠĠĠĠ Ġval Ġj vm Test Ġby Ġgetting ĊĠĠĠĠĠĠĠ Ġval Ġjs Main Ġby Ġgetting ĊĠĠĠĠĠĠĠ Ġval Ġjs Test Ġby Ġgetting ĊĠĠĠĠĠĠĠ Ġval Ġnative Main Ġby Ġgetting ĊĠĠĠĠĠĠĠ Ġval Ġnative Test Ġby Ġgetting ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠStub Ġsecrets Ġto Ġlet Ġthe Ġproject Ġsync Ġand Ġbuild Ġwithout Ġthe Ġpublication Ġvalues Ġset Ġup Ċ ext [" signing . key Id "] Ġ= Ġnull Ċ ext [" signing . password "] Ġ= Ġnull Ċ ext [" signing . secret Key Ring File "] Ġ= Ġnull Ċ ext [" oss rh Username "] Ġ= Ġnull Ċ ext [" oss rh Password "] Ġ= Ġnull Ċ Ċ // ĠGrab bing Ġsecrets Ġfrom Ġlocal . properties Ġfile Ġor Ġfrom Ġenvironment Ġvariables , Ġwhich Ġcould Ġbe Ġused Ġon ĠCI Ċ val Ġsecret Props File Ġ= Ġproject . root Project . file (" local . properties ") Ċ if Ġ( secret Props File . exists ()) Ġ{ ĊĠĠĠ Ġsecret Props File . reader (). use Ġ{ ĊĠĠĠĠĠĠĠ ĠProperties (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}. on Each Ġ{ Ġ( name , Ġvalue ) Ġ-> ĊĠĠĠĠĠĠĠ Ġext [ name . toString ()] Ġ= Ġvalue ĊĠĠĠ Ġ} Ċ } Ġelse Ġ{ ĊĠĠĠ Ġext [" signing . key Id "] Ġ= ĠSystem . getenv (" SIGN ING _ KEY _ ID ") ĊĠĠĠ Ġext [" signing . password "] Ġ= ĠSystem . getenv (" SIGN ING _ PASSWORD ") ĊĠĠĠ Ġext [" signing . secret Key Ring File "] Ġ= ĠSystem . getenv (" SIGN ING _ SECRET _ KEY _ RING _ FILE ") ĊĠĠĠ Ġext [" oss rh Username "] Ġ= ĠSystem . getenv (" OSS RH _ USERNAME ") ĊĠĠĠ Ġext [" oss rh Password "] Ġ= ĠSystem . getenv (" OSS RH _ PASSWORD ") Ċ } Ċ Ċ val Ġjavadoc Jar Ġby Ġtasks . register ing ( Jar :: class ) Ġ{ ĊĠĠĠ Ġarchive Classifier . set (" javadoc ") Ċ } Ċ Ċ fun Ġget Extra String ( name : ĠString ) Ġ= Ġext [ name ]?. toString () Ċ Ċ publishing Ġ{ ĊĠĠĠ Ġ// ĠConfigure Ġmaven Ġcentral Ġrepository ĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" son atype " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreleases Repo Url Ġ= Ġ" https :// s 0 1 . oss . son atype . org / service / local / staging / deploy / maven 2 /" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsnapshots Repo Url Ġ= Ġ" https :// s 0 1 . oss . son atype . org / content / repositories / snapshots /" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Url ( if Ġ( version . toString (). endsWith (" SNAPSHOT ")) Ġsnapshots Repo Url Ġelse Ġreleases Repo Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġget Extra String (" oss rh Username ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġget Extra String (" oss rh Password ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠConfigure Ġall Ġpublications ĊĠĠĠ Ġpublications . with Type < Maven Publication > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// ĠStub Ġjavadoc . jar Ġartifact ĊĠĠĠĠĠĠĠ Ġartifact ( javadoc Jar . get ()) ĊĊĠĠĠĠĠĠĠ Ġ// ĠProvide Ġartifacts Ġinformation Ġrequ ited Ġby ĠMaven ĠCentral ĊĠĠĠĠĠĠĠ Ġpom Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" Proto kol ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription . set (" Kotlin ĠMulti platform Ġserialization Ġlibrary ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" https :// github . com / iko lo mi ets / proto kol ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġlicenses Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" MIT ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" https :// opensource . org / licenses / MIT ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdevelopers Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid . set (" iko lo mi ets ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" I gor ĠKo lo mi ets ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// email . set (" blah blah @ email ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc m Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" https :// github . com / iko lo mi ets / proto kol ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠSign ing Ġartifacts . ĠSign ing .* Ġextra Ġproperties Ġvalues Ġwill Ġbe Ġused Ċ signing Ġ{ ĊĠĠĠ Ġsign ( publishing . publications ) Ċ }