plugins Ġ{ ĊĠĠĠ Ġkotlin (" jvm ") Ġversion Ġ" 1 . 4 . 2 1 " ĊĠĠĠ Ġapplication ĊĠĠĠ Ġdistribution ĊĠĠĠ Ġid (" net . nem eros a . version ing ") Ġversion Ġ" 2 . 1 4 . 0 " Ċ } Ċ Ċ group Ġ= Ġ" com . wire . g any me de " Ċ version Ġ= Ġversioning . info ?. tag Ġ?: Ġversioning . info ?. last Tag Ġ?: Ġversioning . info ?. build Ġ?: Ġ" development " Ċ Ċ val Ġm Class Ġ= Ġ" com . wire . g any me de . App Kt " Ċ Ċ application Ġ{ ĊĠĠĠ Ġmain Class . set ( m Class ) Ċ } Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġj center () Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġ// Ġextension Ġfunctions ĊĠĠĠ Ġimplementation (" pw . for st . tools ", Ġ" kat lib ", Ġ" 1 . 2 . 1 ") ĊĊĠĠĠ Ġ// ĠK tor Ġserver Ġdependencies ĊĠĠĠ Ġval Ġk tor Version Ġ= Ġ" 1 . 5 . 0 " ĊĠĠĠ Ġimplementation (" io . ktor ", Ġ" ktor - server - core ", Ġk tor Version ) ĊĠĠĠ Ġimplementation (" io . ktor ", Ġ" ktor - server - netty ", Ġk tor Version ) ĊĠĠĠ Ġimplementation (" io . ktor ", Ġ" ktor - jackson ", Ġk tor Version ) ĊĊĠĠĠ Ġ// ĠPrometheus Ġmetrics ĊĠĠĠ Ġimplementation (" io . ktor ", Ġ" ktor - metrics - micro meter ", Ġk tor Version ) ĊĠĠĠ Ġimplementation (" io . micro meter ", Ġ" micro meter - registry - prometheus ", Ġ" 1 . 6 . 2 ") ĊĊĠĠĠ Ġ// ĠK tor Ġclient Ġdependencies ĊĠĠĠ Ġimplementation (" io . ktor ", Ġ" ktor - client - json ", Ġk tor Version ) ĊĠĠĠ Ġimplementation (" io . ktor ", Ġ" ktor - client - jackson ", Ġk tor Version ) ĊĠĠĠ Ġimplementation (" io . ktor ", Ġ" ktor - client - apache ", Ġk tor Version ) ĊĠĠĠ Ġimplementation (" io . ktor ", Ġ" ktor - client - logging - jvm ", Ġk tor Version ) ĊĊĠĠĠ Ġ// Ġlogging ĊĠĠĠ Ġimplementation (" io . github . micro utils ", Ġ" kotlin - logging ", Ġ" 2 . 0 . 4 ") ĊĠĠĠ Ġimplementation (" ch . qos . log back ", Ġ" log back - classic ", Ġ" 1 . 3 . 0 - alpha 5 ") ĊĊĠĠĠ Ġ// ĠDI ĊĠĠĠ Ġval Ġk ode in Version Ġ= Ġ" 6 . 5 . 5 " ĊĠĠĠ Ġimplementation (" org . kode in . di ", Ġ" kode in - di - generic - jvm ", Ġk ode in Version ) ĊĠĠĠ Ġimplementation (" org . kode in . di ", Ġ" kode in - di - framework - ktor - server - jvm ", Ġk ode in Version ) ĊĊĠĠĠ Ġ// Ġtests ĊĠĠĠ Ġtest Implementation (" io . mock k ", Ġ" mock k ", Ġ" 1 . 1 0 . 4 ") ĊĠĠĠ Ġtest Implementation ( kotlin (" test ")) ĊĠĠĠ Ġtest Implementation ( kotlin (" test - junit 5 ")) ĊĠĠĠ Ġval Ġjunit Version Ġ= Ġ" 5 . 7 . 0 " ĊĠĠĠ Ġtest Implementation (" org . junit . jupiter ", Ġ" junit - jupiter - params ", Ġjunit Version ) ĊĠĠĠ Ġtest Runtime Only (" org . junit . jupiter ", Ġ" junit - jupiter - engine ", Ġjunit Version ) Ċ } Ċ Ċ source Sets Ġ{ ĊĠĠĠ Ġtest Ġ{ ĊĠĠĠĠĠĠĠ Ġresources Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsrc Dir (" test ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks Ġ{ ĊĠĠĠ Ġcompile Kotlin Ġ{ ĊĠĠĠĠĠĠĠ Ġkotlin Options . jvm Target Ġ= Ġ" 1 . 8 " ĊĠĠĠ Ġ} ĊĠĠĠ Ġcompile Test Kotlin Ġ{ ĊĠĠĠĠĠĠĠ Ġkotlin Options . jvm Target Ġ= Ġ" 1 . 8 " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġdist Tar Ġ{ ĊĠĠĠĠĠĠĠ Ġarchive FileName . set (" app . tar ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġwith Type < Test > Ġ{ ĊĠĠĠĠĠĠĠ Ġuse JUnit Platform () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġregister < Jar >(" fat Jar ") Ġ{ ĊĠĠĠĠĠĠĠ Ġmanifest Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġattributes [" Main - Class "] Ġ= Ġm Class ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġduplicates Strategy Ġ= ĠD uplicates Strategy . EXCL UDE ĊĠĠĠĠĠĠĠ Ġarchive FileName . set (" app . jar ") ĊĠĠĠĠĠĠĠ Ġfrom ( configurations . runtime Classpath . get (). map Ġ{ Ġif Ġ( it . isDirectory ) Ġit Ġelse Ġzip Tree ( it ) Ġ}) ĊĠĠĠĠĠĠĠ Ġfrom ( source Sets . main . get (). output ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġregister (" resolve Dependencies ") Ġ{ ĊĠĠĠĠĠĠĠ Ġdo Last Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproject . all projects . forEach Ġ{ Ġsub Project Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( sub Project ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuild script . configurations . forEach Ġ{ Ġif Ġ( it . is Can Be Resolved ) Ġit . resolve () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigurations . compile Classpath . get (). resolve () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfigurations . test Compile Classpath . get (). resolve () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ