plugins Ġ{ ĊĠĠĠ Ġkotlin (" multi platform ") Ġversion Ġ" 1 . 6 . 1 0 " ĊĠĠĠ Ġkotlin (" plugin . serialization ") Ġversion Ġ" 1 . 6 . 1 0 " ĊĠĠĠ Ġid (" org . jetbrains . dok ka ") Ġversion Ġ" 1 . 6 . 1 0 " ĊĠĠĠ Ġid (" com . android . library ") ĊĠĠĠ Ġid (" maven - publish ") ĊĠĠĠ Ġid (" signing ") Ċ } Ċ Ċ // Ġapply ( plugin Ġ= Ġ" maven - publish ") Ċ // Ġapply ( plugin Ġ= Ġ" com . android . library ") Ċ // Ġapply ( plugin Ġ= Ġ" org . jetbrains . dok ka ") Ċ Ċ group Ġ= Ġ" io . re venue monster . sdk " Ċ // Ġremove Ġprefix Ġv Ġif Ġthe Ġversion Ġincluded , Ġeg Ġ` v 1 . 0 . 0 ` Ċ version Ġ= Ġ( System . getenv (" RM _ K OT LIN _ SDK _ VERSION ") Ġ?: Ġ" 1 . 0 . 0 "). remove Prefix (" v ") Ċ Ċ val Ġartifact Ġ= Ġ" rm - kotlin - sdk " Ċ val Ġpkg Url Ġ= Ġ" https :// github . com / Revenue Monster / rm - kotlin - sdk " Ċ val Ġgit Url Ġ= Ġ" github . com : Revenue Monster / rm - kotlin - sdk . git " Ċ val Ġk tor Version Ġ= Ġ" 1 . 6 . 7 " Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġgoogle () ĊĠĠĠ Ġmaven Central () Ċ } Ċ Ċ val Ġdok ka Output Dir Ġ= Ġ"$ build Dir / dok ka " Ċ Ċ tasks . dok ka Html Ġ{ ĊĠĠĠ Ġoutput Directory . set ( file ( dok ka Output Dir )) Ċ } Ċ Ċ val Ġdok ka Jar Ġby Ġtasks . creating ( Jar :: class ) Ġ{ ĊĠĠĠ Ġgroup Ġ= ĠJava Base Plugin . DOCUMENT ATION _ GROUP Ċ // ĠĠĠ Ġdescription Ġ= Ġ" As semb les ĠKotlin Ġdocs Ġwith ĠD ok ka " ĊĠĠĠ Ġarchive Classifier . set (" javadoc ") ĊĠĠĠ Ġfrom ( tasks . dok ka Html ) Ċ } Ċ Ċ // Ġval Ġdelete D ok ka Output Dir Ġby Ġtasks . register < Delete >(" delete D ok ka Output Directory ") Ġ{ Ċ // ĠĠĠ Ġdelete ( dok ka Output Dir ) Ċ // Ġ} Ċ Ċ // Ġval Ġjavadoc Jar Ġ= Ġtasks . register < Jar >(" javadoc Jar ") Ġ{ Ċ // ĠĠĠ Ġdepends On ( delete D ok ka Output Dir , Ġtasks . dok ka Html ) Ċ // ĠĠĠ Ġarchive Classifier . set (" javadoc ") Ċ // ĠĠĠ Ġfrom ( dok ka Output Dir ) Ċ // Ġ} Ċ Ċ android Ġ{ ĊĠĠĠ Ġcompile Sdk Version ( 3 0 ) ĊĠĠĠ Ġbuild Tools Version Ġ= Ġ" 3 0 . 0 . 3 " ĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġmin Sdk Version ( 2 2 ) ĊĠĠĠĠĠĠĠ Ġtarget Sdk Version ( 3 0 ) ĊĠĠĠĠĠĠĠ Ġmulti Dex Enabled Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġtest Options Ġ{ ĊĠĠĠĠĠĠĠ Ġunit Tests Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Include Android Resources Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġcompile Options Ġ{ ĊĠĠĠĠĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠĠĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠ Ġ} ĊĠĠĠ Ġsource Sets Ġ{ ĊĠĠĠĠĠĠĠ Ġget ByName (" main ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest . src File (" src \\ android Main \\ Android Manifest . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava . src Dirs (" src \\ android Main \\ kotlin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġres . src Dirs (" src \\ android Main \\ res ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ kotlin Ġ{ ĊĠĠĠ Ġ// Ġsetup Ġfor Ġandroid ĊĠĠĠ Ġandroid Ġ{ ĊĠĠĠĠĠĠĠ Ġpublish All Library Variants () ĊĠĠĠ Ġ} ĊĠĠĠ Ġ// Ġsetup Ġfor ĠJVM ĊĠĠĠ Ġj vm Ġ{ ĊĠĠĠĠĠĠĠ Ġcompil ations . all Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Options . jvm Target Ġ= Ġ" 1 . 8 " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġtest Runs [" test "]. execution Task . configure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuse JUnit () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġ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 Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠDependencies Ġfor Ġcommon ĊĠĠĠĠĠĠĠ Ġval Ġcommon Main Ġby Ġgetting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" stdlib ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation (" io . ktor : ktor - client - core :$ ktor Version ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation (" io . ktor : ktor - client - serialization :$ ktor Version ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation (" org . jetbrains . kotlin x : kotlin x - serialization - json : 1 . 3 . 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation (" org . jetbrains . kotlin x : kotlin x - datetime : 0 . 3 . 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation (" org . apache . commons : commons - collections 4 : 4 . 4 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation (" io . ktor : ktor - client - c io :$ ktor Version ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġcommon Test Ġby Ġgetting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" test - junit ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" test - annotations - common ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġj vm Main Ġby Ġgetting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( common Main ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġj vm Test Ġby Ġgetting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" test - junit ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġandroid Main Ġby Ġgetting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( common Main ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" stdlib - jdk 8 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġandroid Test Ġby Ġgetting Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" test ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" test - junit ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġval Ġjs Main Ġby Ġgetting Ġ{} Ċ // ĠĠĠĠĠĠĠ Ġval Ġjs Test Ġby Ġgetting Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation ( kotlin (" test - js ")) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠ ĠDependencies Ġfor ĠiOS Ġand Ġdesktop Ċ // ĠĠĠĠĠĠĠ Ġval Ġnative Main Ġby Ġgetting Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġdependencies Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġval Ġnative Test Ġby Ġgetting Ġ{} Ċ // ĠĠĠĠĠĠĠ Ġval Ġios Main Ġby Ġcreating Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( common Main ) Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġall Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Settings . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse Experimental Annotation (" kotlin . Experimental ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtargets . all Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcompil ations . all Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfree Compiler Args Ġ= ĠlistOf ("- X opt - in = kotlin . Requires Opt In ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ publishing Ġ{ ĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" O ss " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Url Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// s 0 1 . oss . son atype . org / service / local / staging / deploy / maven 2 /" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= ĠSystem . getenv (" SON AT YPE _ USERNAME ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= ĠSystem . getenv (" SON AT YPE _ PASSWORD ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Snapshot " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Url Ġ{ Ġ" https :// s 0 1 . oss . son atype . org / content / repositories / snapshots /" Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= ĠSystem . getenv (" SON AT YPE _ USERNAME ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= ĠSystem . getenv (" SON AT YPE _ PASSWORD ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublications Ġ{ ĊĠĠĠĠĠĠĠ Ġpublications . configure Each Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this Ġis ĠMaven Publication ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( dok ka Jar ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpom Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( artifact ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription . set (" Revenue ĠMon ster ĠKotlin ĠMulti platform ĠSDK ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set ( pkg Url ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicenses Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" MIT Ġlicense ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" https :// opensource . org / licenses / MIT ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġissue Management Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsystem . set (" GitHub ĠIssues ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set ("$ pkg Url / issues ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevelopers Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid . set (" si 3 n lo ong ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" L ee ĠS ian ĠLo ong ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail . set (" s ian lo ong 9 0 @ gmail . com ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid . set (" Sn or Sn or 9 9 9 8 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" Sn or ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail . set (" sn ors nor 9 9 9 8 @ gmail . com ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsc m Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . set (" scm : git : git :// $ git Url ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Connection . set (" scm : git : ssh :// $ git Url ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set ( pkg Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġcreate < Maven Publication >(" maven ") Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġwith Type < Maven Publication > Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠgroupId Ġ= Ġ"$ group " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Id Ġ= Ġartifact Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġversion Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( dok ka Jar ) Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ if Ġ( System . getenv (" G PG _ PRIVATE _ KEY ") Ġ!= Ġnull Ġ&& ĠSystem . getenv (" G PG _ PRIVATE _ PASSWORD ") Ġ!= Ġnull ) Ġ{ ĊĠĠĠ Ġsigning Ġ{ ĊĠĠĠĠĠĠĠ Ġuse InMemory P gp Keys ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . getenv (" G PG _ PRIVATE _ KEY "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . getenv (" G PG _ PRIVATE _ PASSWORD ") ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġsign ( publishing . publications ) ĊĠĠĠ Ġ} Ċ } Ċ