import Ġjava . util .* Ċ import Ġorg . gradle . api . publish . Publishing Extension Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġid (" com . android . library ") ĊĠĠĠ Ġkotlin (" android ") ĊĠĠĠ Ġid (" io . code arte . nexus - staging ") Ġversion Ġ" 0 . 3 0 . 0 " ĊĠĠĠ Ġ` maven - publish ` ĊĠĠĠ Ġsigning Ċ } Ċ Ċ val Ġlibrary Version : ĠString Ġby Ġproject Ċ Ċ android Ġ{ ĊĠĠĠ Ġcompile Sdk Ġ= ĠVersions . sdk . compile ĊĠĠĠ Ġbuild Tools Version Ġ= ĠVersions . build Tools ĊĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġmin Sdk Ġ= ĠVersions . sdk . min ĊĠĠĠĠĠĠĠ Ġtarget Sdk Ġ= ĠVersions . sdk . target ĊĠĠĠ Ġ} ĊĠĠĠ Ġcompile Options Ġ{ ĊĠĠĠĠĠĠĠ Ġencoding Ġ= Ġ" UTF - 8 " ĊĠĠĠĠĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠĠĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠ Ġ} ĊĠĠĠ Ġkotlin Ġ{ ĊĠĠĠĠĠĠĠ Ġsource Sets [" main "]. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin . src Dir (" src / main / kotlin ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġpackaging Options Ġ{ ĊĠĠĠĠĠĠĠ Ġresources . exclude s . add (" META - INF / DEPEND ENCI ES ") ĊĠĠĠĠĠĠĠ Ġresources . exclude s . add (" META - INF / LICENSE ") ĊĠĠĠĠĠĠĠ Ġresources . exclude s . add (" META - INF / LICENSE . txt ") ĊĠĠĠĠĠĠĠ Ġresources . exclude s . add (" META - INF / license . txt ") ĊĠĠĠĠĠĠĠ Ġresources . exclude s . add (" META - INF / NOTICE ") ĊĠĠĠĠĠĠĠ Ġresources . exclude s . add (" META - INF / NOTICE . txt ") ĊĠĠĠĠĠĠĠ Ġresources . exclude s . add (" META - INF / notice . txt ") ĊĠĠĠĠĠĠĠ Ġresources . exclude s . add (" META - INF / AS L 2 . 0 ") ĊĠĠĠĠĠĠĠ Ġresources . exclude s . add (" META - INF /*. kotlin _ module ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks . with Type < org . jetbrains . kotlin . gradle . tasks . Kotlin Compile > Ġ{ ĊĠĠĠ Ġkotlin Options . jvm Target Ġ= Ġ" 1 . 8 " Ċ } Ċ Ċ tasks . with Type < Javadoc >(). all Ġ{ ĊĠĠĠ Ġenabled Ġ= Ġfalse Ċ } Ċ Ċ tasks Ġ{ ĊĠĠĠ Ġval Ġsources Jar Ġby Ġcreating ( Jar :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġarchive Classifier . set (" sources ") ĊĠĠĠĠĠĠĠ Ġfrom ( android . source Sets . get ByName (" main "). java . src Dirs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġartifacts Ġ{ ĊĠĠĠĠĠĠĠ Ġarch ives ( sources Jar ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation ( Lib s . ole k dia . common _ jvm ) ĊĠĠĠ Ġimplementation ( Lib s . ole k dia . common _ android ) ĊĠĠĠ Ġimplementation ( Lib s . ole k dia . sparse _ array _ jvm ) ĊĠĠĠ Ġimplementation ( Lib s . android x . annotations ) Ċ } ĊĊ Ċ //---------------------------------------------------------------- -------------------------------- -- Ċ // Ġ ĠPublish ing Ċ //---------------------------------------------------------------- -------------------------------- -- Ċ Ċ val Ġfis Ġ= Ġproject . root Project . file (" local . properties "). inputStream () Ċ val Ġproperties Ġ= ĠProperties (). apply Ġ{ ĊĠĠĠ Ġload ( fis ) Ċ } Ċ val Ġoss User Ġ= Ġproperties . getProperty (" oss . user ") Ċ val Ġoss Password Ġ= Ġproperties . getProperty (" oss . password ") Ċ extra [" signing . key Id "] Ġ= Ġproperties . getProperty (" signing . key Id ") Ċ extra [" signing . password "] Ġ= Ġproperties . getProperty (" signing . password ") Ċ extra [" signing . secret Key Ring File "] Ġ= Ġproperties . getProperty (" signing . secret Key Ring File ") Ċ Ċ val Ġpublished GroupId : ĠString Ġby Ġproject Ċ val Ġartifact Name : ĠString Ġby Ġproject Ċ val Ġbin tray Repo : ĠString Ġby Ġproject Ċ val Ġlibrary Name : ĠString Ġby Ġproject Ċ val Ġlibrary Description : ĠString Ġby Ġproject Ċ val Ġsite Url : ĠString Ġby Ġproject Ċ val Ġgit Url : ĠString Ġby Ġproject Ċ val Ġlicense Name : ĠString Ġby Ġproject Ċ val Ġlicense Url : ĠString Ġby Ġproject Ċ val Ġdeveloper Org : ĠString Ġby Ġproject Ċ val Ġdeveloper Name : ĠString Ġby Ġproject Ċ val Ġdeveloper Email : ĠString Ġby Ġproject Ċ val Ġdeveloper Id : ĠString Ġby Ġproject Ċ Ċ project . group Ġ= Ġpublished GroupId Ċ project . version Ġ= Ġlibrary Version Ċ Ċ configure < Publishing Extension > Ġ{ ĊĠĠĠ Ġpublications Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate < Maven Publication >(" maven ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgroupId Ġ= Ġpublished GroupId ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Id Ġ= Ġartifact Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġlibrary Version ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( tasks . find ByName (" sources Jar ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ("$ build Dir / outputs / aar /${ project . name }- release . aar ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpom Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( library Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription . set ( library Description ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set ( site Url ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicenses Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( license Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set ( license Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevelopers Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid . set ( developer Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( developer Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail . set ( developer Email ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorganization Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( developer Org ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsc m Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . set ( git Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Connection . set ( git Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set ( site Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Xml Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdependencies Node Ġ= Ġas Node (). append Node (" dependencies ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIterate Ġover Ġthe Ġimplementation Ġdependencies Ġ( we Ġdon 't Ġwant Ġthe Ġtest Ġones ), Ġadding Ġa Ġ< dependency > Ġnode Ġfor Ġeach ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigurations . named (" implementation "). get (). all Dependencies . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠEnsure Ġdependencies Ġsuch Ġas Ġfile Tree Ġare Ġnot Ġincluded Ġin Ġthe Ġpom . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . name Ġ!= Ġ" un specified ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdependency Node Ġ= Ġdependencies Node . append Node (" dependency ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependency Node . append Node (" groupId ", Ġit . group ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependency Node . append Node (" artifactId ", Ġit . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdependency Node . append Node (" version ", Ġit . version ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproject . logger . info (" Added Ġdependency : Ġ'${ it . group }:${ it . name }:${ it . version }' ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠ Ġmaven (" https :// oss . son atype . org / service / local / staging / deploy / maven 2 /") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" son atype " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġoss User ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġoss Password ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ signing Ġ{ ĊĠĠĠ Ġsign ( publishing . publications ) Ċ } Ċ Ċ nexus Staging Ġ{ ĊĠĠĠ Ġusername Ġ= Ġoss User ĊĠĠĠ Ġpassword Ġ= Ġoss Password ĊĠĠĠ Ġpackage Group Ġ= Ġpublished GroupId Ċ }