import Ġcom . android . build . gradle . Base Extension Ċ import Ġorg . jetbrains . kotlin . gradle . tasks . Kotlin Compile Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġid (" com . android . library ") ĊĠĠĠ Ġ` maven - publish ` ĊĠĠĠ Ġsigning ĊĠĠĠ Ġkotlin (" android ") ĊĠĠĠ Ġkotlin (" k apt ") Ċ } Ċ Ċ android Ġ{ ĊĠĠĠ Ġcompile Sdk Ġ= ĠAndroid Sdk . COMPILE ĊĊĠĠĠ Ġdefault Config Ġ{ ĊĠĠĠĠĠĠĠ Ġmin Sdk Ġ= ĠAndroid Sdk . MIN ĊĠĠĠĠĠĠĠ Ġtarget Sdk Ġ= ĠAndroid Sdk . TARGET ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompile Options Ġ{ ĊĠĠĠĠĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠĠĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlint Ġ{ ĊĠĠĠĠĠĠĠ Ġis Abort OnError Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġdisable (" Invalid Package ") ĊĠĠĠĠĠĠĠ Ġdisable (" Null Safe Mutable LiveData ") Ġ// Ġthis Ġrule Ġis Ġcrash ing Ġlint Ġcheck Ġfor ĠRoom LiveData Ġfile ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsource Sets Ġ{ ĊĠĠĠĠĠĠĠ Ġget ByName (" main ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava . src Dir (" src / main / kotlin ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġget ByName (" test ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava . src Dir (" src / test / kotlin ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġget ByName (" android Test ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġassets . src Dir ("$ project Dir / schemas ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks . with Type < Kotlin Compile > Ġ{ ĊĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠ Ġfree Compiler Args Ġ= ĠlistOf ("- module - name ", ĠP om . LIBRARY _ AR TI FACT _ ID ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġapi ( libs . android x . lifecycle . runtime ) ĊĠĠĠ Ġapi ( libs . android x . lifecycle . li ved ata ) ĊĠĠĠ Ġapi ( libs . android x . room . runtime ) ĊĠĠĠ Ġapi ( libs . kotlin . coroutines . android ) ĊĠĠĠ Ġapi ( libs . tim ber ) ĊĊĠĠĠ Ġ// ĠTest ĊĠĠĠ Ġtest Implementation ( project (": jdbc ")) ĊĠĠĠ Ġtest Implementation ( libs . x erial . sqlite ) ĊĠĠĠ Ġtest Implementation ( libs . android x . room . k tx ) ĊĠĠĠ Ġtest Implementation ( platform ( libs . junit . bom )) ĊĠĠĠ Ġtest Implementation ( libs . junit . jupiter ) ĊĠĠĠ Ġtest Runtime Only ( libs . junit . engine ) ĊĠĠĠ Ġtest Implementation ( libs . mock K ) ĊĠĠĠ Ġtest Implementation ( libs . truth ) ĊĠĠĠ Ġtest Implementation ( libs . android x . room . testing ) ĊĠĠĠ Ġk apt Test ( libs . android x . room . compiler ) Ċ } Ċ Ċ // Ġ===== ĠTEST ĠTASK S Ġ===== Ċ Ċ // Ġcreate ĠJ Unit Ġreports Ċ tasks . with Type < Test > Ġ{ ĊĠĠĠ Ġuse JUnit Platform () Ċ } Ċ Ċ // Ġ===== ĠMaven ĠDeploy Ġ===== Ċ Ċ // Ġ./ gradle w Ġclean Ġcheck Ġassemble Release Ġpublish Maven Publication To Maven Local Ċ // Ġ./ gradle w Ġclean Ġcheck Ġassemble Release Ġpublish Maven Publication To Soup b owl Repository Ċ // Ġ./ gradle w Ġclean Ġcheck Ġassemble Release Ġpublish Maven Publication To Maven Central Repository Ċ Ċ tasks . register < Jar >(" sources Jar ") Ġ{ ĊĠĠĠ Ġ// ĠĠĠ Ġfrom ( android . source Sets . get ByName (" main "). java . source Files ) ĊĠĠĠ Ġfrom ( project . the < Base Extension >(). source Sets [" main "]. java . src Dirs ) ĊĠĠĠ Ġarchive Classifier . set (" sources ") Ċ } Ċ Ċ publishing Ġ{ ĊĠĠĠ Ġpublications Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate < Maven Publication >(" maven ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgroupId Ġ= ĠP om . GROUP _ ID ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Id Ġ= ĠP om . LIBRARY _ AR TI FACT _ ID ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= ĠP om . VERSION _ NAME ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( tasks [" sources Jar "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġafter Evaluate Ġ{ Ġartifact ( tasks . get ByName (" bundle Release A ar ")) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpom Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( P om . LIBRARY _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription . set ( P om . PO M _ DESCRIPTION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set ( P om . URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicenses Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( P om . LIC ENCE _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set ( P om . LIC ENCE _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdistribution . set ( P om . LIC ENCE _ DIST ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevelopers Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid . set ( P om . DE VELO PER _ ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( P om . DE VELO PER _ NAME ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsc m Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set ( P om . SCM _ URL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . set ( P om . SCM _ CONNECTION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Connection . set ( P om . SCM _ DEV _ CONNECTION ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġadd Ġdependencies Ġto Ġpom . xml ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpom . with Xml Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdependencies Node Ġ= Ġas Node (). append Node (" dependencies ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigurations . implementation . get (). all Dependencies . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ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 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Maven Central " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġuri (" https :// oss . son atype . org / service / local / staging / deploy / maven 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġson atype N exus Username : ĠString ? Ġby Ġproject ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġson atype N exus Password : ĠString ? Ġby Ġproject ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġson atype N exus Username Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġson atype N exus Password Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Soup b owl " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġuri (" http :// 1 9 2 . 1 6 8 . 8 6 . 5 : 8 0 8 2 / nexus / content / repositories / releases /") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsoup b owl N exus Username : ĠString ? Ġby Ġproject ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsoup b owl N exus Password : ĠString ? Ġby Ġproject ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġsoup b owl N exus Username Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġsoup b owl N exus Password Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Allow In secure Protocol Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ signing Ġ{ ĊĠĠĠ Ġsign ( publishing . publications [" maven "]) Ċ }