import Ġcom . jfrog . bin tray . gradle . Bin tray Extension Ċ import Ġme ow . AppConfig Ċ import Ġme ow . AppConfig . Dependencies Ċ import Ġme ow . AppConfig . Publishing Ċ import Ġme ow . AppConfig . Versions Ċ import Ġme ow . getProperty Any Ċ import Ġorg . jetbrains . dok ka . gradle . D ok ka Task Ċ import Ġorg . jetbrains . kotlin . gradle . tasks . Kotlin Compile Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġid (" com . android . library ") ĊĠĠĠ Ġkotlin (" android ") ĊĠĠĠ Ġkotlin (" plugin . serialization ") Ġversion Ġ( me ow . AppConfig . Versions . K OT LIN X _ SERIAL IZATION )// need Ġpackage ĊĠĠĠ Ġkotlin (" k apt ") ĊĠĠĠ Ġ` maven - publish ` ĊĠĠĠ Ġid (" com . jfrog . bin tray ") Ġversion Ġ" 1 . 8 . 5 " ĊĠĠĠ Ġid (" org . jetbrains . dok ka ") Ġversion Ġ( me ow . AppConfig . Versions . DO K KA ) Ċ } Ċ Ċ group Ġ= ĠPublish ing . groupId Ċ version Ġ= ĠApp Config . generate Version Name () Ċ Ċ android Ġ{ ĊĠĠĠ Ġcompile Sdk Version ( Versions . SDK _ COMPILE ) ĊĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġmin Sdk Version ( Versions . SDK _ MIN ) ĊĠĠĠĠĠĠĠ Ġtarget Sdk Version ( Versions . SDK _ TARGET ) ĊĊĠĠĠĠĠĠĠ Ġversion Code Ġ= ĠApp Config . generate Version Code () ĊĠĠĠĠĠĠĠ Ġversion Name Ġ= ĠApp Config . generate Version Name () ĊĊĠĠĠĠĠĠĠ Ġtest Instrumentation Runner Ġ= Ġ" android x . test . runner . Android JUnit Runner " ĊĠĠĠĠĠĠĠ Ġvector Draw ables . use Support Library Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġbuild Types Ġ{ ĊĠĠĠĠĠĠĠ Ġget ByName (" release ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Min ify Enabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpro guard Files ( getDefault Pro guard File (" pro guard - android . txt "), Ġ" pro guard - rules . pro ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlint Options Ġ{ ĊĠĠĠĠĠĠĠ Ġis Abort OnError Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġis Ignore Warnings Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġdisable (" Missing Default Resource ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompile Options Ġ{ ĊĠĠĠĠĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠĠĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsource Sets Ġ{ ĊĠĠĠĠĠĠĠ Ġget ByName (" main ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Root ( me ow . AppConfig . Build . SRC _ MAIN ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanifest . src File ("${ me ow . AppConfig . Build . SRC _ MAIN } Android Manifest . xml ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava . src Dirs ("${ me ow . AppConfig . Build . SRC _ MAIN } kotlin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava . includes . add ("/ ${ me ow . AppConfig . Build . SRC _ MAIN }** ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava . exclude s . add (" **/ build /** ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġres . src Dirs ( me ow . getAll Resources Src Dirs ( project , Ġtrue )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation ( file Tree ( map Of (" dir " Ġto Ġ" libs ", Ġ" include " Ġto ĠlistOf (" *. jar ")) )) ĊĊĠĠĠ Ġ// ĠImplementation ĠDependencies ĊĠĠĠ ĠDependencies . implementation Items . forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġimplementation ( it ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks Ġ{ ĊĠĠĠ Ġval Ġdok ka Ġby Ġgetting ( D ok ka Task :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoutput Format Ġ= Ġ" html " ĊĠĠĠĠĠĠĠ Ġoutput Directory Ġ= Ġ"$ build Dir / dok ka " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġwith Type < Kotlin Compile > Ġ{ ĊĠĠĠĠĠĠĠ Ġkotlin Options . jvm Target Ġ= ĠJava Version . VERSION _ 1 _ 8 . toString () ĊĠĠĠ Ġ} Ċ } Ċ Ċ val Ġpublication Name Ġ= Ġ" maven " Ċ Ċ /* Ċ Publishing Ġa ĠKotlin Ġlibrary Ġto Ġyour ĠB intr ay Ġrepo Ġusing ĠGradle ĠKotlin ĠDSL Ċ https :// medium . com /@ ser gio . ig wt / publishing - a - kotlin - library - to - your - bin tray - repo - using - gradle - kotlin - dsl - bde aed 5 4 5 7 1 a Ċ https :// github . com / n will c / k retry / blob / master / build . gradle . k ts Ċ */ Ċ source Sets . create (" main ") Ġ{ ĊĠĠĠ Ġjava . src Dirs ("${ me ow . AppConfig . Build . SRC _ MAIN } kotlin ") ĊĠĠĠ Ġjava . includes . add ("/ ${ me ow . AppConfig . Build . SRC _ MAIN }** ") ĊĠĠĠ Ġjava . exclude s . add (" **/ build /** ") ĊĠĠĠ Ġresources . src Dirs ("${ me ow . AppConfig . Build . SRC _ MAIN } res ") Ċ } Ċ Ċ publishing Ġ{ ĊĠĠĠ Ġpublications Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate < Maven Publication >( publication Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgroupId Ġ= Ġproject . group . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Id Ġ= ĠPublish ing . artifactId ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġproject . version . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpom . with Xml Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdependencies Node Ġ= Ġas Node (). append Node (" dependencies ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfiguration Names Ġ= ĠarrayOf (" implementation ", Ġ" api ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration Names . forEach Ġ{ Ġc Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigurations [ c ]. all Dependencies . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . group Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ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 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsources Jar Ġby Ġtasks . register ing ( Jar :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarchive Classifier . convention (" sources ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( project . source Sets [" main "]. all Source ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjavadoc Jar Ġby Ġtasks . register ing ( Jar :: class ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On (" dok ka ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġarchive Classifier . convention (" javadoc ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ("$ build Dir / dok ka ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ("$ build Dir / outputs / aar / Me ow Framework - release . aar ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( sources Jar . get ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( javadoc Jar . get ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ bin tray Ġ{ ĊĠĠĠ Ġuser Ġ= ĠgetProperty Any (" bin tray . user ") ĊĠĠĠ Ġkey Ġ= ĠgetProperty Any (" bin tray . key ") ĊĊĠĠĠ Ġdry Run Ġ= Ġfalse ĊĠĠĠ Ġpublish Ġ= Ġtrue ĊĠĠĠ Ġset Public ations ( publication Name ) ĊĠĠĠ Ġpkg ( delegate Closure Of < Bin tray Extension . Package Config > Ġ{ ĊĠĠĠĠĠĠĠ Ġname Ġ= ĠPublish ing . name ĊĠĠĠĠĠĠĠ Ġrepo Ġ= ĠPublish ing . repo ĊĠĠĠĠĠĠĠ Ġuser Org Ġ= ĠPublish ing . user Org ĊĠĠĠĠĠĠĠ Ġdesc Ġ= ĠPublish ing . library Desc ĊĠĠĠĠĠĠĠ Ġwebsite Url Ġ= Ġ" https :// github . com /${ Publishing . developer Id }/${ Publishing . name }" ĊĠĠĠĠĠĠĠ Ġissue Tracker Url Ġ= Ġ" https :// github . com /${ Publishing . developer Id }/${ Publishing . name }/ issues " ĊĠĠĠĠĠĠĠ Ġv cs Url Ġ= Ġ" https :// github . com /${ Publishing . developer Id }/${ Publishing . name }. git " ĊĠĠĠĠĠĠĠ Ġversion . vcs Tag Ġ= Ġ" v ${ project . version }" ĊĠĠĠĠĠĠĠ Ġset License s (" Apache - 2 . 0 ") ĊĠĠĠĠĠĠĠ Ġset Labels ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" kotlin ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" me ow - framework ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" android ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" library ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" mv vm ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" material ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" rest - api " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġpublic Download Numbers Ġ= Ġtrue ĊĠĠĠ Ġ}) Ċ } Ċ