plugins Ġ{ ĊĠ Ġsigning ĊĠ Ġ` java - library ` ĊĠ Ġ` maven - publish ` ĊĠ Ġkotlin (" jvm ") Ġversion Ġ" 1 . 5 . 2 1 " ĊĠ Ġid (" io . free fair . lo mbok ") Ġversion Ġ" 6 . 1 . 0 - m 3 " ĊĠ Ġid (" org . jetbrains . dok ka ") Ġversion Ġ" 1 . 5 . 0 " ĊĠ Ġid (" com . cod it ory . manifest ") Ġversion Ġ" 0 . 1 . 1 4 " ĊĠ Ġid (" com . github . john ren gel man . shadow ") Ġversion Ġ" 7 . 0 . 0 " Ċ } Ċ all projects Ġ{ ĊĠ Ġrepositories Ġ{ ĊĠĠĠ Ġmaven Central () ĊĠ Ġ} ĊĊĠ Ġtasks Ġ{ ĊĠĠĠ Ġ// Ġdisable Ġ' lo mbok . config ' Ġgeneration ĊĠĠĠ Ġwith Type < io . free fair . gradle . plugins . lo mbok . tasks . Generate L om bok Config > Ġ{ ĊĠĠĠĠĠ Ġenabled Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ sub projects Ġ{ ĊĠ Ġapply ( plugin Ġ= Ġ" kotlin ") ĊĠ Ġapply ( plugin Ġ= Ġ" signing ") ĊĠ Ġapply ( plugin Ġ= Ġ" java - library ") ĊĠ Ġapply ( plugin Ġ= Ġ" maven - publish ") ĊĠ Ġapply ( plugin Ġ= Ġ" io . free fair . lo mbok ") ĊĠ Ġapply ( plugin Ġ= Ġ" com . cod it ory . manifest ") ĊĠ Ġapply ( plugin Ġ= Ġ" com . github . john ren gel man . shadow ") ĊĊĠ Ġbase Ġ{ ĊĠĠĠ Ġarch ives Name . set ( artifactId ) ĊĠ Ġ} ĊĊĠ Ġlombok Ġ{ ĊĠĠĠ Ġversion . set (" 1 . 1 8 . 2 0 ") ĊĠ Ġ} ĊĊĠ Ġ// ĠSource ĠCompatibility ĊĠ Ġjava Ġ{ ĊĠĠĠ Ġmod ularity . infer Module Path . set ( true ) ĊĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 1 ĊĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 1 ĊĠĠĠ Ġwith Sources Jar () ĊĠĠĠ Ġwith Javadoc Jar () ĊĠ Ġ} ĊĊĠ Ġdependencies Ġ{ ĊĠĠĠ Ġconstraints Ġ{ ĊĠĠĠĠĠ Ġ// ĠReactive ĠStreams Ġ/ ĠCor outines ĊĠĠĠĠĠ Ġimplementation ( group Ġ= Ġ" io . reactivex . rx java 3 ", Ġname Ġ= Ġ" rx java ", Ġversion Ġ= Ġ" 3 . 0 . 1 3 ") ĊĠĠĠĠĠ Ġimplementation ( group Ġ= Ġ" io . project reactor ", Ġname Ġ= Ġ" reactor - core ", Ġversion Ġ= Ġ" 3 . 4 . 8 ") ĊĠĠĠĠĠ Ġimplementation ( group Ġ= Ġ" org . jetbrains . kotlin x ", Ġname Ġ= Ġ" kotlin x - coroutines - core ", Ġversion Ġ= Ġ" 1 . 5 . 1 ") ĊĊĠĠĠĠĠ Ġ// ĠApache ĠCommons ĊĠĠĠĠĠ Ġimplementation ( group Ġ= Ġ" commons - io ", Ġname Ġ= Ġ" commons - io ", Ġversion Ġ= Ġ" 2 . 1 1 . 0 ") ĊĠĠĠĠĠ Ġimplementation ( group Ġ= Ġ" org . apache . commons ", Ġname Ġ= Ġ" commons - text ", Ġversion Ġ= Ġ" 1 . 9 ") ĊĠĠĠĠĠ Ġimplementation ( group Ġ= Ġ" org . apache . commons ", Ġname Ġ= Ġ" commons - collections 4 ", Ġversion Ġ= Ġ" 4 . 4 ") ĊĊĠĠĠĠĠ Ġ// ĠClients ĊĠĠĠĠĠ Ġimplementation ( group Ġ= Ġ" com . squareup . okhttp 3 ", Ġname Ġ= Ġ" okhttp ", Ġversion Ġ= Ġ" 4 . 9 . 1 ") ĊĠĠĠĠĠ Ġimplementation ( group Ġ= Ġ" org . apache . http components . client 5 ", Ġname Ġ= Ġ" http client 5 ", Ġversion Ġ= Ġ" 5 . 1 ") ĊĊĠĠĠĠĠ Ġimplementation ( group Ġ= Ġ" com . google . code . gson ", Ġname Ġ= Ġ" gson ", Ġversion Ġ= Ġ" 2 . 8 . 7 ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġimplementation ( group Ġ= Ġ" org . jetbrains ", Ġname Ġ= Ġ" annotations ", Ġversion Ġ= Ġ" 2 1 . 0 . 1 ") ĊĠĠĠ Ġ// ĠTest ĊĠĠĠ Ġtest Implementation ( platform (" org . junit : junit - bom : 5 . 7 . 2 ")) ĊĠĠĠ Ġtest Implementation ( group Ġ= Ġ" org . junit . jupiter ", Ġname Ġ= Ġ" junit - jupiter ") ĊĠĠĠ Ġtest Implementation ( group Ġ= Ġ" org . mockito ", Ġname Ġ= Ġ" mockito - core ", Ġversion Ġ= Ġ" 3 . 1 1 . 2 ") ĊĠĠĠ Ġtest Implementation ( group Ġ= Ġ" org . mockito ", Ġname Ġ= Ġ" mockito - junit - jupiter ", Ġversion Ġ= Ġ" 3 . 1 1 . 2 ") ĊĠĠĠ Ġtest Implementation ( group Ġ= Ġ" ch . qos . log back ", Ġname Ġ= Ġ" log back - classic ", Ġversion Ġ= Ġ" 1 . 2 . 5 ") ĊĠ Ġ} ĊĊĠ Ġpublishing Ġ{ ĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" maven " ĊĠĠĠĠĠĠĠ Ġurl Ġ= Ġuri ( project . maven Repository Url ) ĊĠĠĠĠĠĠĠ Ġcredentials Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġproject . maven Repository Username ĊĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġproject . maven Repository Password ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublications Ġ{ ĊĠĠĠĠĠ Ġcreate < Maven Publication >(" main ") Ġ{ ĊĠĠĠĠĠĠĠ Ġfrom ( components [" java "]) ĊĠĠĠĠĠĠĠ Ġpom . default () ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġsigning Ġ{ ĊĠĠĠ Ġuse G pg Cmd () ĊĠĠĠ Ġsign ( publishing . publications [" main "]) ĊĠ Ġ} ĊĊĠ Ġ// ĠSource Ġencoding ĊĠ Ġtasks Ġ{ ĊĠĠĠ Ġwith Type < org . jetbrains . kotlin . gradle . tasks . Kotlin Compile > Ġ{ ĊĠĠĠĠĠ Ġkotlin Options . jvm Target Ġ= Ġ" 1 . 8 " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġjavadoc Ġ/ Ġhtml 5 Ġsupport ĊĠĠĠ Ġwith Type < Javadoc > Ġ{ ĊĠĠĠĠĠ Ġif Ġ( Java Version . current (). is Java 9 Compatible ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( options Ġas ĠStandard Javadoc Doc let Options ). add Boolean Option (" html 5 ", Ġtrue ) ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġshadow jar Ġ& Ġre location ĊĠĠĠ Ġval Ġre locate Shadow Jar Ġby Ġcreating ( com . github . jen gel man . gradle . plugins . shadow . tasks . Configure Shadow Re location :: class ) Ġ{ ĊĠĠĠĠĠ Ġtarget Ġ= Ġshadow Jar . get () ĊĠĠĠĠĠ Ġprefix Ġ= Ġ" com . github . twitch 4 j . clients . shadow .${ " v $ version ". replace (".", Ġ"_ ") }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġjar Ġartifact Ġid Ġand Ġversion ĊĠĠĠ Ġwith Type < Jar > Ġ{ ĊĠĠĠĠĠ Ġif Ġ( this Ġis Ġcom . github . jen gel man . gradle . plugins . shadow . tasks . Shadow Jar ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdepends On ( re locate Shadow Jar ) ĊĠĠĠĠĠĠĠ Ġarchive Classifier . set (" sh aded ") ĊĠĠĠĠĠĠĠ Ġassemble . configure Ġ{ Ġdepends On ( this @ with Type ) Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġdepends On ( project . tasks . manifest ) ĊĠĠĠĠĠ Ġmanifest . from ( File ( build Dir , Ġ" resources / main / META - INF / MAN IFEST . MF ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġcompile Ġoptions ĊĠĠĠ Ġwith Type < Java Compile > Ġ{ ĊĠĠĠĠĠ Ġoptions . encoding Ġ= Ġ" UTF - 8 " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġjavadoc Ġ& Ġde lo mbok ĊĠĠĠ Ġval Ġde lo mbok Ġby Ġgetting ( io . free fair . gradle . plugins . lo mbok . tasks . De lo mbok :: class ) ĊĠĠĠ Ġjavadoc Ġ{ ĊĠĠĠĠĠ Ġdepends On ( de lo mbok ) ĊĠĠĠĠĠ Ġsource ( de lo mbok ) ĊĠĠĠĠĠ Ġoptions Ġ{ ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ"${ base . archives Name . get ()} Ġ( v ${ project . version })" ĊĠĠĠĠĠĠĠ Ġwindow Title Ġ= Ġ"${ base . archives Name . get ()} Ġ( v ${ project . version })" ĊĠĠĠĠĠĠĠ Ġencoding Ġ= Ġ" UTF - 8 " ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġtest ĊĠĠĠ Ġtest Ġ{ ĊĠĠĠĠĠ Ġdo First Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġargv Ġ= ĠlistOf ("-- add - opens ", Ġ" java . base / java . lang = ALL - UN NAMED ", Ġ"-- il legal - access = warn ") ĊĠĠĠĠĠĠĠ Ġif Ġ( Java Version . current (). is Java 9 Compatible ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( jvm Args Ġ!= Ġnull Ġ&& Ġj vm Args !!. isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargv Ġ= Ġj vm Args !! Ġ+ Ġargv ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġj vm Args Ġ= Ġargv ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġuse JUnit Platform Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġinclude Tags (" unittest ") Ċ // ĠĠĠĠĠĠĠ Ġexclude Tags (" integration ") ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ