import Ġcom . jfrog . bin tray . gradle . Bin tray Extension Ċ import Ġorg . jetbrains . dok ka . gradle . D ok ka Task Ċ import Ġorg . jetbrains . kotlin . gradle . tasks . Kotlin Compile Ċ import Ġjava . util .* Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġkotlin (" jvm ") Ġversion Ġ" 1 . 3 . 3 1 " ĊĠĠĠ Ġmaven ĊĠĠĠ Ġid (" org . jetbrains . dok ka ") Ġversion Ġ" 0 . 9 . 1 8 " ĊĠĠĠ Ġid (" com . jfrog . bin tray ") Ġversion Ġ" 1 . 8 . 4 " ĊĠĠĠ Ġ` maven - publish ` Ċ } Ċ Ċ fun Ġread Properties ( properties File : ĠFile ) Ġ= ĠProperties (). apply Ġ{ ĊĠĠĠ Ġproperties File . inputStream (). use Ġ{ Ġfis Ġ-> ĊĠĠĠĠĠĠĠ Ġload ( fis ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ val Ġgradle Properties Ġ= Ġread Properties ( File ( project . rootDir , Ġ" gradle . properties ")) Ċ val Ġlocal Properties Ġ= Ġread Properties ( File ( project . rootDir , Ġ" local . properties ")) Ċ Ċ group Ġ= Ġgradle Properties . getProperty (" LIB _ GROUP ") Ċ version Ġ= Ġgradle Properties . getProperty (" LIB _ VERSION ") Ċ Ċ java Ġ{ ĊĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation ( kotlin (" stdlib - jdk 8 ")) ĊĠĠĠ Ġtest Implementation (" junit : junit : 4 . 1 2 ") Ċ } Ċ Ċ tasks . with Type < Kotlin Compile > Ġ{ ĊĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠ Ġfree Compiler Args Ġ= ĠlistOf ("- X js r 3 0 5 = strict ") ĊĠĠĠĠĠĠĠ Ġj vm Target Ġ= ĠJava Version . VERSION _ 1 _ 8 . toString () ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ================ ========== Ċ Ċ val Ġdok ka Ġby Ġtasks . getting ( D ok ka Task :: class ) Ġ{ ĊĠĠĠ Ġoutput Format Ġ= Ġ" javadoc " ĊĠĠĠ Ġoutput Directory Ġ= Ġ"$ build Dir / javadoc " ĊĠĠĠ Ġj dk Version Ġ= Ġ 8 Ċ } Ċ Ċ 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 ( dok ka ) Ċ } Ċ artifacts . add (" archives ", Ġdok ka Jar ) Ċ Ċ val Ġsources Jar Ġby Ġtasks . creating ( Jar :: class ) Ġ{ ĊĠĠĠ Ġgroup Ġ= ĠJava Base Plugin . DOCUMENT ATION _ GROUP ĊĠĠĠ Ġdescription Ġ= Ġ" As semb les Ġsources ĠJ AR " ĊĠĠĠ Ġarchive Classifier . set (" sources ") ĊĠĠĠ Ġfrom ( source Sets . main . get (). all Source ) Ċ } Ċ artifacts . add (" archives ", Ġsources Jar ) Ċ Ċ val Ġjar Ġby Ġtasks . getting ( Jar :: class ) Ġ{ ĊĠĠĠ Ġmanifest . attributes . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġput (" Implementation - Title ", Ġ" Digest ĠUtils ĠLib ") ĊĠĠĠĠĠĠĠ Ġput (" Implementation - Version ", Ġproject . version ) ĊĠĠĠĠĠĠĠ Ġput (" Built - By ", ĠSystem . getProperty (" user . name ")) ĊĠĠĠĠĠĠĠ Ġput (" Built - JDK ", ĠSystem . getProperty (" java . version ")) ĊĠĠĠĠĠĠĠ Ġput (" Built - Gradle ", Ġproject . gradle . gradle Version ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ================ ===== Ċ Ċ val Ġsite Url : ĠString Ġ= Ġgradle Properties . getProperty (" LIB _ SITE _ URL ") Ċ val Ġgit Url : ĠString Ġ= Ġgradle Properties . getProperty (" LIB _ GIT _ URL ") Ċ val Ġlib Repo : ĠString Ġ= Ġgradle Properties . getProperty (" LIB _ REPO ") Ċ val Ġlib Name : ĠString Ġ= Ġgradle Properties . getProperty (" LIB _ NAME ") Ċ val Ġlib Artifact Id : ĠString Ġ= Ġgradle Properties . getProperty (" LIB _ AR TI FACT _ ID ") Ċ val Ġlib Desc : ĠString Ġ= Ġgradle Properties . getProperty (" LIB _ DESC ") Ċ val Ġlib Issue Tracker Url : ĠString Ġ= Ġgradle Properties . getProperty (" LIB _ ISSUE _ TRACK ER _ URL ") Ċ val Ġlib License : ĠString Ġ= Ġgradle Properties . getProperty (" LIB _ LICENSE ") Ċ val Ġlib License Url : ĠString Ġ= Ġgradle Properties . getProperty (" LIB _ LICENSE _ URL ") Ċ val Ġlib Github Repo : ĠString Ġ= Ġgradle Properties . getProperty (" LIB _ GITHUB _ REPO ") Ċ Ċ publishing Ġ{ ĊĠĠĠ Ġpublications . create < Maven Publication >(" Central Publication ") Ġ{ ĊĠĠĠĠĠĠĠ ĠgroupId Ġ= Ġproject . group . toString () ĊĠĠĠĠĠĠĠ Ġartifact Id Ġ= Ġlib Artifact Id ĊĠĠĠĠĠĠĠ Ġversion Ġ= Ġproject . version . toString () ĊĠĠĠĠĠĠĠ Ġpom Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpackaging Ġ= Ġgradle Properties . getProperty (" LIB _ PACK AGING ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( lib Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set ( site Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription . set ( lib Desc ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Id Ġ= Ġlib Artifact Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlicenses Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( lib License ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set ( lib License Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdistribution . set (" repo ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdevelopers Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid . set ( gradle Properties . getProperty (" LIB _ DE VELO PER _ ID ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( gradle Properties . getProperty (" LIB _ DE VELO PER _ NAME ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail . set ( gradle Properties . getProperty (" LIB _ DE VELO PER _ EMAIL ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc m Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . set ( site Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Connection . set ( git Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set ( site Url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfrom ( components [" java "]) ĊĠĠĠĠĠĠĠ Ġartifact ( sources Jar ) ĊĠĠĠĠĠĠĠ Ġartifact ( dok ka Jar ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ bin tray Ġ{ ĊĠĠĠ Ġuser Ġ= Ġlocal Properties . getProperty (" BIN TR AY _ USER ") ĊĠĠĠ Ġkey Ġ= Ġlocal Properties . getProperty (" BIN TR AY _ KEY ") ĊĠĠĠ Ġdry Run Ġ= Ġfalse Ġ// [ Default : Ġfalse ] ĠWhether Ġto Ġrun Ġthis Ġas Ġdry - run , Ġwithout Ġdeploying ĊĠĠĠ Ġpublish Ġ= Ġtrue Ġ// [ Default : Ġfalse ] ĠWhether Ġversion Ġshould Ġbe Ġauto Ġpublished Ġafter Ġan Ġupload ĊĠĠĠ Ġoverride Ġ= Ġfalse Ġ// [ Default : Ġfalse ] ĠWhether Ġto Ġoverride Ġversion Ġartifacts Ġalready Ġpublished ĊĊĠĠĠ Ġset Public ations (" Central Publication ") ĊĠĠĠ Ġpkg ( delegate Closure Of < Bin tray Extension . Package Config > Ġ{ ĊĠĠĠĠĠĠĠ Ġrepo Ġ= Ġlib Repo ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġlib Name ĊĠĠĠĠĠĠĠ Ġdesc Ġ= Ġlib Desc ĊĠĠĠĠĠĠĠ Ġwebsite Url Ġ= Ġsite Url ĊĠĠĠĠĠĠĠ Ġissue Tracker Url Ġ= Ġlib Issue Tracker Url ĊĠĠĠĠĠĠĠ Ġv cs Url Ġ= Ġgit Url ĊĠĠĠĠĠĠĠ Ġset License s ( lib License ) ĊĠĠĠĠĠĠĠ Ġset Labels ( gradle Properties . getProperty (" LIB _ PACK AGING "), Ġgradle Properties . getProperty (" LIB _ LABEL ")) ĊĠĠĠĠĠĠĠ Ġpublic Download Numbers Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġgithub Repo Ġ= Ġlib Github Repo Ġ// Optional ĠGithub Ġrepository ĊĠĠĠĠĠĠĠ Ġgithub Release Notes File Ġ= Ġgradle Properties . getProperty (" LIB _ GITHUB _ RELEASE _ NOTES _ FILE ") Ġ// Optional ĠGithub Ġreadme Ġfile ĊĊĠĠĠĠĠĠĠ Ġ// Optional Ġversion Ġdescriptor ĊĠĠĠĠĠĠĠ Ġversion ( delegate Closure Of < Bin tray Extension . Version Config > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Optional Ġconfiguration Ġfor ĠG PG Ġsigning ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgpg ( delegate Closure Of < Bin tray Extension . G pg Config > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsign Ġ= Ġtrue Ġ// Determin es Ġwhether Ġto ĠG PG Ġsign Ġthe Ġfiles . ĠThe Ġdefault Ġis Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Optional Ġconfiguration Ġfor ĠMaven ĠCentral Ġsync Ġof Ġthe Ġversion ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Central Sync ( delegate Closure Of < Bin tray Extension . Maven Central Sync Config > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsync Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// [ Default : Ġtrue ] ĠDetermines Ġwhether Ġto Ġsync Ġthe Ġversion Ġto ĠMaven ĠCentral . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuser Ġ= Ġlocal Properties . getProperty (" OSS _ USER _ TOKEN _ KEY ") Ġ// OSS Ġuser Ġtoken : Ġmandatory ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġlocal Properties . getProperty (" OSS _ USER _ TOKEN _ PASSWORD ") Ċ // OSS Ġuser Ġpassword : Ġmandatory ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Ġ= Ġ" 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Optional Ġproperty . ĠBy Ġdefault Ġthe Ġstaging Ġrepository Ġis Ġclosed Ġand Ġartifacts Ġare Ġreleased Ġto ĠMaven ĠCentral . ĠYou Ġcan Ġoptionally Ġturn Ġthis Ġbehaviour Ġoff Ġ( by Ġput ing Ġ 0 Ġas Ġvalue ) Ġand Ġrelease Ġthe Ġversion Ġmanually . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ}) Ċ } Ċ