plugins Ġ{ ĊĠĠĠ Ġkotlin (" jvm ") Ġversion Ġ" 1 . 6 . 1 0 " ĊĊĠĠĠ Ġ` java - gradle - plugin ` ĊĠĠĠ Ġ` maven - publish ` ĊĠĠĠ Ġsigning Ċ } Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġmaven Central () ĊĠĠĠ Ġgradle Plugin Portal () ĊĠĠĠ Ġgoogle () Ċ } Ċ Ċ source Sets Ġ{ ĊĠĠĠ Ġcreate (" functional Test ") Ġ{ ĊĠĠĠĠĠĠĠ Ġcompile Classpath Ġ+= Ġsource Sets . main . get (). output Ġ+ Ġconfigurations . test Runtime Classpath ĊĠĠĠĠĠĠĠ Ġruntime Classpath Ġ+= Ġoutput Ġ+ Ġcompile Classpath ĊĠĠĠ Ġ} Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation ( gradle Api ()) ĊĠĠĠ Ġ// Ġexclude Ġtrans itive Ġdependency Ġon Ġstdlib , Ġthe ĠGradle Ġversion Ġshould Ġbe Ġused ĊĠĠĠ Ġcompile Only ( kotlin (" stdlib ")) ĊĊĠĠĠ Ġcompile Only (" org . jetbrains . kotlin : kotlin - gradle - plugin : 1 . 6 . 1 0 ") ĊĠĠĠ Ġcompile Only (" com . android . tools . build : gradle : 4 . 2 . 2 ") ĊĊĠĠĠ Ġtest Implementation ( kotlin (" test ")) ĊĊĠĠĠ Ġ" functional Test Implementation "( gradle Test Kit ()) ĊĠĠĠ Ġ// Ġdependencies Ġonly Ġfor Ġplugin 's Ġclasspath Ġto Ġwork Ġwith ĠKotlin ĠMulti - Platform Ġand ĠAndroid Ġplugins ĊĠĠĠ Ġ" functional Test Compile Only " (" org . jetbrains . kotlin : kotlin - gradle - plugin : 1 . 6 . 1 0 ") ĊĠĠĠ Ġ" functional Test Compile Only " (" org . jetbrains . kotlin : kotlin - compiler - embed d able : 1 . 6 . 1 0 ") ĊĠĠĠ Ġ" functional Test Compile Only " (" org . jetbrains . kotlin : kotlin - compiler - runner : 1 . 6 . 1 0 ") Ċ } Ċ Ċ java Ġ{ ĊĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 Ċ } ĊĊĊ Ċ tasks . register < Test >(" functional Test ") Ġ{ ĊĠĠĠ Ġgroup Ġ= Ġ" verification " ĊĠĠĠ Ġtest Classes Dirs Ġ= Ġsource Sets [" functional Test "]. output . classes Dirs ĊĠĠĠ Ġclasspath Ġ= Ġsource Sets [" functional Test "]. runtime Classpath ĊĊĊĠĠĠ Ġ// ĠWhile Ġgradle Ġtest kit Ġsupports Ġinjection Ġof Ġthe Ġplugin Ġclasspath Ġit Ġdoesn 't Ġallow Ġusing Ġdependency Ġnotation ĊĠĠĠ Ġ// Ġto Ġdetermine Ġthe Ġactual Ġruntime Ġclasspath Ġfor Ġthe Ġplugin . ĠIt Ġuses Ġisolation , Ġso Ġplugins Ġapplied Ġby Ġthe Ġbuild ĊĠĠĠ Ġ// Ġscript Ġare Ġnot Ġvisible Ġin Ġthe Ġplugin Ġclass loader . ĠThis Ġmeans Ġoptional Ġdependencies Ġ( dependent Ġon Ġapplied Ġplugins Ġ- ĊĠĠĠ Ġ// Ġfor Ġexample Ġkotlin Ġmulti platform ) Ġare Ġnot Ġvisible Ġeven Ġif Ġthey Ġare Ġin Ġregular Ġgradle Ġuse . ĠThis Ġhack Ġwill Ġallow ĊĠĠĠ Ġ// Ġextending Ġthe Ġclasspath . ĠIt Ġis Ġbased Ġupon : Ġhttps :// docs . gradle . org / 6 . 0 / user guide / test _ kit . html # sub : test - kit - classpath - injection ĊĠĠĠ Ġ// ĠCreate Ġa Ġconfiguration Ġto Ġregister Ġthe Ġdependencies Ġagainst ĊĠĠĠ Ġdo First Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfile Ġ= ĠFile ( temporary Dir , Ġ" plugin - classpath . txt ") ĊĠĠĠĠĠĠĠ Ġfile ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. write Text ( source Sets [" functional Test "]. compile Classpath . join ToString ("\ n ")) ĊĠĠĠĠĠĠĠ Ġsystem Properties [" plugin - classpath "] Ġ= Ġfile . absolute Path ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks . check Ġ{ Ġdepends On (" functional Test ") Ġ} ĊĊ Ċ tasks . with Type < org . jetbrains . kotlin . gradle . tasks . Kotlin Compile >(). configure Each Ġ{ ĊĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠ Ġall Warnings As Errors Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠ Ġ// ĠK over Ġworks Ġwith Ġthe Ġstdlib Ġof Ġat Ġleast Ġversion Ġ` 1 . 4 . x ` ĊĠĠĠĠĠĠĠ Ġlanguage Version Ġ= Ġ" 1 . 4 " ĊĠĠĠĠĠĠĠ ĠapiVersion Ġ= Ġ" 1 . 4 " ĊĠĠĠĠĠĠĠ Ġ// ĠKotlin Ġcompiler Ġ 1 . 6 Ġissues Ġa Ġwarning Ġif Ġ` language Version ` Ġor Ġ` apiVersion ` Ġ 1 . 4 Ġis Ġused Ġ- Ġsuppress Ġit ĊĠĠĠĠĠĠĠ Ġfree Compiler Args Ġ= Ġfree Compiler Args Ġ+ Ġ"- X suppress - version - warnings " ĊĠĠĠ Ġ} Ċ } Ċ Ċ // Ġoverride Ġversion Ġin Ġdeploy Ċ properties [" Deploy Version "] ?. let Ġ{ Ġversion Ġ= Ġit Ġ} ĊĊ Ċ publishing Ġ{ ĊĠĠĠ Ġpublications Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġ` plugin Maven ` Ġ- Ġstandard Ġname Ġfor Ġthe Ġpublication Ġtask Ġof Ġthe Ġ` java - gradle - plugin ` ĊĠĠĠĠĠĠĠ Ġcreate < Maven Publication >(" plugin Maven ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ` java ` Ġcomponent Ġwill Ġbe Ġadded Ġby Ġthe Ġ` java - gradle - plugin ` Ġlater ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Extra Maven Artifacts ( project , Ġproject . source Sets . main . get (). all Source ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġadd Maven Repository ( project ) ĊĠĠĠ Ġadd Maven Metadata () ĊĠĠĠ Ġpublications . with Type ( Maven Publication :: class ). all Ġ{ ĊĠĠĠĠĠĠĠ Ġsign Publication If Key Present ( project ) ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ gradle Plugin Ġ{ ĊĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate (" K over ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" org . jetbrains . kotlin x . k over " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation Class Ġ= Ġ" kotlin x . k over . K over Plugin " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdisplayName Ġ= Ġ" Kotlin ĠCode ĠCoverage ĠPlugin " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Evaluate Ġcode Ġcoverage Ġfor Ġprojects Ġwritten Ġin ĠKotlin " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ