import Ġorg . gradle . api . tasks . bund ling . Jar Ċ import Ġorg . gradle . api . tasks . testing . logging . Test Exception Format Ċ import Ġorg . jetbrains . kotlin . gradle . tasks . Kotlin Compile Ċ Ċ group Ġ= Ġ" cloud _ build _ metrics " Ċ version Ġ= Ġ" 1 . 0 - SNAPSHOT " Ċ Ċ build script Ġ{ ĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠ Ġj center () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠ Ġclasspath ( kotlin (" gradle - plugin ", ĠVersions . K OT LIN )) ĊĠĠĠ Ġ} Ċ } Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġapplication ĊĠĠĠ Ġkotlin (" jvm ") Ġversion ĠVersions . K OT LIN ĊĊĠĠĠ Ġ// Ġgradle Ġuse Latest Versions ĊĠĠĠ Ġid (" se . pat ri ker des . use - latest - versions ") Ġversion Ġ" 0 . 2 . 9 " ĊĠĠĠ Ġid (" com . github . ben - man es . versions ") Ġversion Ġ" 0 . 2 1 . 0 " Ċ } Ċ Ċ apply Ġ{ ĊĠĠĠ Ġplugin (" kotlin ") Ċ } Ċ Ċ application Ġ{ ĊĠĠĠ Ġmain ClassName Ġ= Ġ" main " Ċ } Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġj center () Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation ( project (" cloud _ build _ api ")) ĊĠĠĠ Ġimplementation ( kotlin (" stdlib - jdk 8 ", ĠVersions . K OT LIN )) ĊĊĠĠĠ Ġ// Ġmock ito Ġinline Ġenables Ġmock ing Ġof Ġfinal Ġclasses Ġby Ġdefault ĊĠĠĠ Ġtest Implementation (" org . mockito : mockito - inline : 2 . 2 5 . 1 ") ĊĠĠĠ Ġtest Implementation (" junit : junit : 4 . 1 3 - beta - 2 ") ĊĠĠĠ Ġtest Implementation (" org . hamcrest : hamcrest - junit : 2 . 0 . 0 . 0 ") ĊĠĠĠ Ġtest Implementation (" org . hamcrest : java - hamcrest : 2 . 0 . 0 . 0 ") Ċ } Ċ // ĠFix ĠException Ġin Ġthread Ġ" main " Ġjava . lang . NoSuch Method Error : Ġcom . google . common . util . concurrent . More Executors . direct Executor () Ljava / util / concurrent / Executor ; Ċ // ĠEnsure Ġall Ġdeps Ġare Ġusing Ġthe Ġsame Ġmodern Ġversion Ġof Ġgu ava Ċ configurations . all Ġ{ ĊĠĠĠ Ġresolution Strategy Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġhttps :// search . maven . org / search ? q = a : gu ava % 2 0 g : com . google . gu ava ĊĠĠĠĠĠĠĠ Ġforce (" com . google . gu ava : gu ava : 2 6 . 0 - jre ") ĊĠĠĠĠĠĠĠ Ġexclude ( group Ġ= Ġ" com . google . gu ava ", Ġmodule Ġ= Ġ" gu ava - jdk 5 ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ val Ġjava Version Ġ= Ġ" 1 . 8 " Ċ val Ġcompile Kotlin : ĠKotlin Compile Ġby Ġtasks Ċ compile Kotlin . kotlin Options Ġ{ ĊĠĠĠ Ġj vm Target Ġ= Ġjava Version Ċ } Ċ Ċ val Ġcompile Test Kotlin : ĠKotlin Compile Ġby Ġtasks Ċ compile Test Kotlin . kotlin Options Ġ{ ĊĠĠĠ Ġj vm Target Ġ= Ġjava Version Ċ } Ċ Ċ java Ġ{ ĊĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 Ċ } Ċ Ċ // ĠOutput Ġfull Ġtest Ġresults Ġto Ġconsole Ċ // ĠAvoid s Ġhaving Ġto Ġread Ġthe ĠHTML Ġreport Ċ tasks . with Type < Test > Ġ{ ĊĠĠĠ Ġtest Logging Ġ{ ĊĠĠĠĠĠĠĠ Ġevents (" passed ", Ġ" skipped ", Ġ" failed ") ĊĠĠĠĠĠĠĠ Ġexception Format Ġ= ĠTest Exception Format . FULL ĊĠĠĠ Ġ} Ċ } Ċ Ċ // Ġgradle Ġfat Jar Ċ // Ġjava Ġ- jar Ġbuild / libs / cloud _ build _ metrics - all - 1 . 0 - SNAPSHOT . jar Ċ task (" fat Jar ", Ġtype Ġ= ĠJar :: class ) Ġ{ ĊĠĠĠ Ġbase Name Ġ= Ġ"${ project . name }- all " ĊĠĠĠ Ġmanifest Ġ{ ĊĠĠĠĠĠĠĠ Ġattributes . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġput (" Main - Class ", Ġ" tasks . Main ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġfrom ( configurations . runtime Classpath . get (). map Ġ{ Ġfile Ġ-> ĊĠĠĠĠĠĠĠ Ġif Ġ( file . isDirectory ) Ġfile Ġelse Ġzip Tree ( file ) ĊĠĠĠ Ġ}) ĊĠĠĠ Ġwith ( tasks [" jar "] Ġas ĠCopy Spec ) Ċ } Ċ