import Ġjava . util . Date Ċ import Ġcom . car rot search . gradle . junit 4 . Random ized Testing Task Ċ import Ġcom . jfrog . bin tray . gradle . Bin tray Extension Ċ import Ġcom . jfrog . bin tray . gradle . tasks . Recording Copy Task Ċ import Ġorg . elasticsearch . gradle . Version Properties Ċ import Ġorg . jetbrains . kotlin . gradle . tasks . Kotlin Compile Ċ Ċ build script Ġ{ ĊĠĠĠ Ġval Ġdefault Es Version Ġ= Ġ" 6 . 7 . 2 " ĊĠĠĠ Ġval Ġes Version Ġ= Ġif Ġ( has Property (" es Version ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġproperty (" es Version ") ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġdefault Es Version ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠ Ġmaven Central () ĊĠĠĠĠĠĠĠ Ġj center () ĊĠĠĠ Ġ} ĊĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠ Ġclasspath (" org . elasticsearch . gradle : build - tools :$ es Version ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġidea ĊĠĠĠ Ġjava ĊĠĠĠ Ġkotlin (" jvm ") Ġversion Ġ" 1 . 3 . 5 0 " ĊĠĠĠ Ġid (" com . jfrog . bin tray ") Ġversion Ġ" 1 . 8 . 4 " Ċ } Ċ Ċ apply Ġ{ ĊĠĠĠ Ġplugin (" elasticsearch . es plugin ") Ċ } Ċ Ċ sub projects Ġ{ ĊĠĠĠ Ġapply Ġ{ ĊĠĠĠĠĠĠĠ Ġplugin (" java ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ configure < org . elasticsearch . gradle . plugin . Plugin Properties Extension > Ġ{ ĊĠĠĠ Ġname Ġ= Ġ" mapper - external - file " ĊĠĠĠ Ġdescription Ġ= Ġ" External Ġfile Ġfield Ġmapper Ġfor ĠElastic Search " ĊĠĠĠ Ġclassname Ġ= Ġ" company . e vo . elasticsearch . plugin . mapper . External File Mapper Plugin " ĊĠĠĠ Ġlicense File Ġ= Ġroot Project . file (" LICENSE . txt ") ĊĠĠĠ Ġnotice File Ġ= Ġroot Project . file (" NOTICE . txt ") Ċ } Ċ Ċ val Ġapp Version Ġ= Ġ Ġproject . file (" project . version ") ĊĠĠĠĠĠĠĠ Ġ. read Lines () ĊĠĠĠĠĠĠĠ Ġ. first () ĊĠĠĠĠĠĠĠ Ġ. toUpperCase () ĊĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġver Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( has Property (" release ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver . remove Suffix ("- SNAPSHOT ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġver ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ val Ġversions Ġ= ĠVersion Properties . get Versions () Ġas ĠMap < String , ĠString > Ċ project . version Ġ= Ġ"$ app Version - es ${ versions [" elasticsearch "] }" Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġmaven Central () ĊĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠ Ġurl Ġ= Ġuri (" https :// dl . bin tray . com / e vo / maven ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation ( kotlin (" stdlib - jdk 8 ")) ĊĠĠĠ Ġruntime ( kotlin (" stdlib - jdk 8 ")) ĊĠĠĠ Ġcompile (" company . e vo : persistent - hash map ") ĊĠĠĠ Ġcompile (" commons - logging ", Ġ" commons - logging ", Ġversions [" commons logging "]) Ċ } Ċ Ċ tasks . with Type ( Kotlin Compile :: class . java ). all Ġ{ ĊĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠ Ġj vm Target Ġ= ĠJava Version . VERSION _ 1 _ 8 . toString () ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠHave Ġno Ġidea Ġhow Ġto Ġfix Ġthis Ġbetter , Ġthe Ġfix Ġneeded Ġfrom Ġkotlin Ġplugin Ġ>= Ġ 1 . 1 . 4 Ċ tasks . with Type ( Random ized Testing Task :: class . java ). all Ġ{ ĊĠĠĠ Ġtest Classes Dirs Ġ= Ġfiles ( File ( build Dir , Ġ" classes / kotlin / test ")) Ċ } Ċ Ċ bin tray Ġ{ ĊĠĠĠ Ġuser Ġ= Ġif Ġ( has Property (" bin tray User ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġproperty (" bin tray User "). toString () ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠSystem . getenv (" BIN TR AY _ USER ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġkey Ġ= Ġif Ġ( has Property (" bin tray ApiKey ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġproperty (" bin tray ApiKey "). toString () ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠSystem . getenv (" BIN TR AY _ API _ KEY ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġpkg ( delegate Closure Of < Bin tray Extension . Package Config > Ġ{ ĊĠĠĠĠĠĠĠ Ġrepo Ġ= Ġ" elasticsearch " ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġproject . name ĊĠĠĠĠĠĠĠ Ġuser Org Ġ= Ġ" e vo " ĊĠĠĠĠĠĠĠ Ġset License s (" Apache - 2 . 0 ") ĊĠĠĠĠĠĠĠ Ġset Labels (" elasticsearch - plugin ", Ġ" external - file - mapper ") ĊĠĠĠĠĠĠĠ Ġv cs Url Ġ= Ġ" https :// github . com / anti - social / elasticsearch - external - field - mapper . git " ĊĠĠĠĠĠĠĠ Ġversion ( delegate Closure Of < Bin tray Extension . Version Config > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġapp Version ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreleased Ġ= ĠDate (). toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġv cs Tag Ġ= Ġ" v $ app Version " ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ}) ĊĠĠĠ Ġfiles Spec ( delegate Closure Of < Recording Copy Task > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdistributions Dir Ġ= Ġbuild Dir . resolve (" distributions ") ĊĠĠĠĠĠĠĠ Ġfrom ( distributions Dir ) ĊĠĠĠĠĠĠĠ Ġinclude (" *- $ app Version - *. zip ") ĊĠĠĠĠĠĠĠ Ġinto (".") ĊĠĠĠ Ġ}) ĊĠĠĠ Ġpublish Ġ= Ġtrue ĊĠĠĠ Ġdry Run Ġ= Ġhas Property (" bin tray D ry Run ") Ċ } Ċ