import Ġcom . github . geo he il . streaming reference . Libraries Ċ import Ġorg . gradle . internal . impl dep . org . joda . time . Year Month . YEAR Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġidea ĊĠĠĠ Ġ` maven - publish ` ĊĠĠĠ Ġ` java - library ` ĊĠĠĠ Ġid (" org . ship kit . java ") Ġversion Ġ" 2 . 3 . 1 " ĊĠĠĠ Ġid (" com . diff plug . gradle . spot less ") Ġversion Ġ" 4 . 3 . 0 " ĊĠĠĠ Ġid (" com . github . ma if l ai . scalatest ") Ġversion Ġ" 0 . 2 6 " Ġapply Ġfalse ĊĠĠĠ Ġid (" com . github . john ren gel man . shadow ") Ġversion Ġ" 5 . 2 . 0 " Ġapply Ġfalse ĊĠĠĠ Ġ// id Ġ(" com . z lad . gradle . avro h ug ger ") Ġversion Ġ" 0 . 4 . 4 " Ġapply Ġfalse Ċ } Ċ Ċ all projects Ġ{ ĊĠĠĠ Ġapply ( plugin Ġ= Ġ" java - library ") ĊĊĠĠĠ Ġgroup Ġ= Ġ" com . github . geo he il . streaming reference " ĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠ Ġj center () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġjava Ġ{ ĊĠĠĠĠĠĠĠ Ġsource Compatibility Ġ= ĠLibraries . Shared Versions . java Version ĊĠĠĠĠĠĠĠ Ġtarget Compatibility Ġ= ĠLibraries . Shared Versions . java Version ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Ġhttps :// github . com / apache / flink / pull / 5 9 0 0 ĊĠĠĠ Ġ// ĠNOTE : ĠWe Ġcannot Ġuse Ġ" compile Only " Ġor Ġ" shadow " Ġconfigurations Ġsince Ġthen Ġwe Ġcould Ġnot Ġrun Ġcode ĊĠĠĠ Ġ// Ġin Ġthe ĠIDE Ġor Ġwith Ġ" gradle Ġrun ". ĠWe Ġalso Ġcannot Ġexclude Ġtrans itive Ġdependencies Ġfrom Ġthe ĊĠĠĠ Ġ// Ġshadow Jar Ġyet Ġ( see Ġhttps :// github . com / john ren gel man / shadow / issues / 1 5 9 ). ĊĠĠĠ Ġ// ĠTODO Ġfor Ġnow Ġrun Ġtask Ġstill Ġneeds Ġto Ġbe Ġfixed ! ĊĊĠĠĠ Ġconfigurations Ġ{ ĊĠĠĠĠĠĠĠ Ġtest Compile Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġextends From ( configurations . compile Only . get ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ configure ( sub projects /*. filter Ġ{ Ġit . name Ġ== Ġ" gre eter " Ġ|| Ġit . name Ġ== Ġ" greeting - library " Ġ} */) Ġ{ ĊĠĠĠ Ġapply ( plugin Ġ= Ġ" java ") ĊĠĠĠ Ġapply ( plugin Ġ= Ġ" maven - publish ") ĊĠĠĠ Ġapply ( plugin Ġ= Ġ" scala ") ĊĠĠĠ Ġapply ( plugin Ġ= Ġ" check style ") ĊĠĠĠ Ġ// Ġapply Ġno Ġautomatic Ġformatting Ġvalidation Ġfor Ġauto Ġgenerated Ġav ro Ġclasses ĊĠĠĠ Ġif Ġ(! name . startsWith (" models ")) Ġ{ Ċ // ĠĠĠ Ġif Ġ( sub projects . filter Ġ{ Ġit . name Ġ!= Ġ": comm mon : models " Ġ}. isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġapply ( plugin Ġ= Ġ" com . diff plug . gradle . spot less ") ĊĠĠĠĠĠĠĠ Ġspot less Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscala Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscal af mt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Header ("// ĠCopyright Ġ( C ) Ġ 2 0 2 0 Ġgeo He il ", Ġ" package Ġ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġtarget { Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexclude (" ** /*. md ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexclude Build Directories () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkt fmt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Header ("// ĠCopyright Ġ( C ) Ġ 2 0 2 0 Ġgeo He il ", Ġ" package Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġapply ( plugin Ġ= Ġ" com . github . ma if l ai . scalatest ") ĊĠĠĠ Ġapply ( plugin Ġ= Ġ" com . github . john ren gel man . shadow ") ĊĊĠĠĠ Ġ// ĠTODO Ġcross Ġbuild Ġfor Ġmultiple Ġscala / flink / spark Ġversions ĊĠĠĠ Ġbase . archives Base Name Ġ= Ġ"${ project . name }_${ Libraries . Shared Versions . scala V Base }" ĊĊĠĠĠ Ġ// ĠNOTE : ĠWe Ġcannot Ġuse Ġ" compile Only " Ġor Ġ" shadow " Ġconfigurations Ġsince Ġthen Ġwe Ġcould Ġnot Ġrun Ġcode ĊĠĠĠ Ġ// Ġin Ġthe ĠIDE Ġor Ġwith Ġ" gradle Ġrun ". ĠWe Ġalso Ġcannot Ġexclude Ġtrans itive Ġdependencies Ġfrom Ġthe ĊĠĠĠ Ġ// Ġshadow Jar Ġyet Ġ( see Ġhttps :// github . com / john ren gel man / shadow / issues / 1 5 9 ). ĊĠĠĠ Ġ// Ġ-> ĠExplicit ly Ġdefine Ġthe Ġ// Ġlibraries Ġwe Ġwant Ġto Ġbe Ġincluded Ġin Ġthe Ġ" flink Shadow Jar " Ġconfiguration ! Ċ Ċ // ĠĠĠ Ġconfigurations Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġ" flink Shadow Jar "{ ĊĠĠĠ Ġ// Ġdependencies Ġwhich Ġgo Ġinto Ġthe Ġshadow Jar ĊĠĠĠ Ġ// Ġprovided Ġby ĠF link Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġexclude ( group Ġ= Ġ" org . apache . flink ", Ġmodule Ġ= Ġ" force - sh ading ") ĊĠĠĠ Ġ// flink Shadow Jar . exclude Ġgroup : Ġ" org . apache . flink ", Ġmodule : Ġ" force - sh ading " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġf link Shadow Jar . exclude Ġgroup : Ġ" com . google . code . find bugs ", Ġmodule : Ġ" js r 3 0 5 " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġf link Shadow Jar . exclude Ġgroup : Ġ" org . slf 4 j " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġf link Shadow Jar . exclude Ġgroup : Ġ" log 4 j " ĊĊĠĠĠ Ġ// Ġalready Ġprovided Ġdependencies Ġfrom Ġserializer Ġframeworks Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġf link Shadow Jar . exclude Ġgroup : Ġ" com . es ot eric software . k ry o ", Ġmodule : Ġ" k ry o " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġf link Shadow Jar . exclude Ġgroup : Ġ" javax . servlet ", Ġmodule : Ġ" servlet - api " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġf link Shadow Jar . exclude Ġgroup : Ġ" org . apache . http components ", Ġmodule : Ġ" http client " Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} ĊĊĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimplementation Ġby Ġconfigurations Ċ // ĠĠĠĠĠĠĠ Ġval Ġtest Implementation Ġby Ġconfigurations Ċ // ĠĠĠĠĠĠĠ Ġval Ġtest Runtime Only Ġby Ġconfigurations ĊĠĠĠĠĠĠĠ Ġimplementation ( Libraries . scala Library ) Ċ // ĠĠĠĠĠĠĠ Ġimplementation (" org . scala - lang : scala - library : 2 . 1 3 . 2 ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠUse ĠScal atest Ġfor Ġtesting Ġour Ġlibrary Ċ // ĠĠĠĠĠĠĠ Ġtest Implementation (" junit : junit : null ") Ċ // ĠĠĠĠĠĠĠ Ġtest Implementation ( Test Libraries . scala Test ) Ċ // ĠĠĠĠĠĠĠ Ġtest Implementation (" org . scalatest plus : junit - 4 - 1 2 _ 2 . 1 3 : 3 . 1 . 2 . 0 ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠNeed Ġscala - xml Ġat Ġtest Ġruntime ĊĠĠĠĠĠĠĠ Ġ// test Runtime Only (" org . scala - lang . modules : scala - xml _ 2 . 1 3 : 1 . 2 . 0 ") ĊĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġjava Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġjar { Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġproject . arch Ġarch ives Base Name Ġ= Ġ" asdf " Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} ĊĠĠĠ Ġ// archives Base Name . set ("${ project . name }_${ Libraries . Scala Versions . scala V Base }") Ċ // ĠĠĠ Ġval Ġshadow Jar : ĠShadow Jar Ġby Ġtasks Ċ // ĠĠĠ Ġshadow Jar . apply Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġbase Name Ġ= Ġartifact ID Ċ // ĠĠĠĠĠĠĠ Ġclassifier Ġ= Ġnull Ċ // ĠĠĠ Ġ} ĊĠĠĠ Ġval Ġshadow Jar : Ġcom . github . jen gel man . gradle . plugins . shadow . tasks . Shadow Jar Ġby Ġtasks ĊĠĠĠ Ġshadow Jar . apply Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġduplicates Strategy ( Duplicates Strategy . FAIL ) Ċ // ĠĠĠĠĠĠĠ Ġmerge Service Files () Ċ // ĠĠĠĠĠĠĠ Ġmanifest . attributes . apply Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġput (" Main - Class ", Ġserver ClassName ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġbase Name Ġ= Ġ"${ project . name }_${ Libraries . Scala Versions . scala V Base }- all " Ċ // ĠĠĠĠĠĠĠ Ġclassifier Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġarchive Base Name . set ("${ project . name }_${ Libraries . Shared Versions . scala V Base }") ĊĠĠĠ Ġ} ĊĠĠĠ Ġtasks Ġ{ ĊĠĠĠĠĠĠĠ Ġbuild Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( shadow Jar ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ // ĠĠĠ Ġfun ĠMaven P om . add Dependencies () Ġ= Ġwith Xml Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġas Node (). append Node (" dependencies "). let Ġ{ Ġdep Node Ġ-> Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġconfigurations . compile . all Dependencies . forEach Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdep Node . append Node (" dependency "). apply Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Node (" groupId ", Ġit . group ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Node (" artifactId ", Ġit . name ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Node (" version ", Ġit . version ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ // Ġhttps :// kotlin expert ise . com / kotlin library dist i but ion / Ċ // ĠĠĠ Ġval Ġpublication Name Ġ= Ġ" tls lib " Ċ // ĠĠĠ Ġpublishing Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġpublications . invoke Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġpublication Name ( Maven Publication :: class ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Id Ġ= Ġ"${ project . name }_${ Libraries . Scala Versions . scala V Base }- all " Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( shadow Jar ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpom . add Dependencies () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} ĊĊ Ċ // ĠĠĠ Ġpublishing Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġpublications . invoke Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġpublication Name ( Maven Publication :: class ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Id Ġ= Ġproject . name Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( shadow Jar ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpom . add Dependencies () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġtasks Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġwith Type ( Gradle Build :: class . java ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġdepends On ( shadow Jar ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ Ċ // ĠĠĠĠĠĠĠ Ġpublishing Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġpublications Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġcreate < Maven Publication >(" maven Java ") Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( shadow Jar ) Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( source Jar ) Ċ //// ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( scal adoc Jar ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpom Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" My ĠLibrary ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription . set (" A Ġconcise Ġdescription Ġof Ġmy Ġlibrary ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" http :// www . example . com / library ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproperties . set ( map Of ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" my Prop " Ġto Ġ" value ", Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" prop . with . dots " Ġto Ġ" another Value " Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicenses Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" The ĠApache ĠLicense , ĠVersion Ġ 2 . 0 ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" http :// www . apache . org / licenses / LICENSE - 2 . 0 . txt ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevelopers Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid . set (" jo h nd ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" John ĠDoe ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail . set (" john . doe @ example . com ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsc m Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . set (" scm : git : git :// example . com / my - library . git ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Connection . set (" scm : git : ssh :// example . com / my - library . git ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" http :// example . com / my - library /") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ Ċ // ĠĠĠ Ġtasks . with Type ( Scala Compile ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġconfigure ( scala Compile Options . fork Options ) Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġmemory Maximum Size Ġ= Ġ' 1 g ' Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġj vm Args Ġ= Ġ[' - XX : Max Perm Size = 5 1 2 m '] Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġdependencies Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġ" test Compile " (" org . sp ock framework : sp ock - core : 1 . 0 - groovy - 2 . 4 ") Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġexclude ( module Ġ= Ġ" groovy - all ") Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ } Ċ