import Ġorg . gradle . api . tasks . testing . logging . Test Exception Format Ċ import Ġorg . jetbrains . kotlin . gradle . tasks . Kotlin Compile Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġ` java - gradle - plugin ` ĊĠĠĠ Ġ` kotlin - dsl ` ĊĠĠĠ Ġ` maven - publish ` ĊĠĠĠ Ġid (" com . gradle . plugin - publish ") Ġversion Ġ" 0 . 1 0 . 0 " Ċ } Ċ Ċ group Ġ= Ġ" net . lt gt . gradle " Ċ Ċ kotlin Dsl Plugin Options Ġ{ ĊĠĠĠ Ġexperimental Warning . set ( false ) Ċ } Ċ Ċ tasks . with Type < Kotlin Compile >(). configure Each Ġ{ ĊĠĠĠ Ġ// ĠThis Ġis Ġthe Ġversion Ġused Ġin ĠGradle Ġ 4 . 6 , Ġfor Ġbackwards Ġcompatibility Ġwhen Ġwe 'll Ġupgrade ĊĠĠĠ Ġkotlin Options . apiVersion Ġ= Ġ" 1 . 2 " ĊĊĠĠĠ Ġkotlin Options . all Warnings As Errors Ġ= Ġtrue Ċ } Ċ Ċ gradle . task Graph . when Ready Ġ{ ĊĠĠĠ Ġif Ġ( has Task (": publish Plugins ")) Ġ{ ĊĠĠĠĠĠĠĠ Ġcheck (" git Ġdiff Ġ-- quiet Ġ-- exit - code ". execute ( null , Ġroot Dir ). waitFor () Ġ== Ġ 0 ) Ġ{ Ġ" Working Ġtree Ġis Ġdirty " Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġprocess Ġ= Ġ" git Ġdescribe Ġ-- exact - match ". execute ( null , Ġroot Dir ) ĊĠĠĠĠĠĠĠ Ġcheck ( process . waitFor () Ġ== Ġ 0 ) Ġ{ Ġ" Version Ġis Ġnot Ġtagged " Ġ} ĊĠĠĠĠĠĠĠ Ġversion Ġ= Ġprocess . text . trim (). remove Prefix (" v ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ val Ġerror pr one Version Ġ= Ġ" 2 . 3 . 2 " Ċ val Ġerror pr one J av ac Version Ġ= Ġ" 9 + 1 8 1 - r 4 1 7 3 - 1 " Ċ val Ġandroid Plugin Version Ġ= Ġ" 3 . 2 . 1 " Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġmaven Central () ĊĠĠĠ Ġgoogle () ĊĠĠĠ Ġj center () Ġ{ ĊĠĠĠĠĠĠĠ Ġcontent Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġonly For Configurations (" kt lint ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinclude Module (" com . andre apiv et ta . kol or ", Ġ" kol or ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ dependencies Ġ{ ĊĠĠĠ Ġcompile Only (" com . android . tools . build : gradle :$ android Plugin Version ") Ġ{ ĊĠĠĠĠĠĠĠ Ġexclude ( module Ġ= Ġ" kotlin - stdlib - jre 8 "). because ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" kotlin - stdlib - jre N Ġis Ġdeprecated , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" it 's Ġsafe Ġto Ġexclude Ġbecause Ġwe Ġhave Ġkotlin - stdlib - jdk 8 Ġin Ġthe Ġclasspath Ġthrough Ġthe Ġ` embedded - kotlin ` Ġplugin " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġtest Runtime Only (" com . android . tools . build : gradle :$ android Plugin Version ") ĊĊĠĠĠ Ġtest Implementation (" junit : junit : 4 . 1 2 ") ĊĠĠĠ Ġtest Implementation (" com . google . truth : truth : 0 . 4 2 ") ĊĠĠĠ Ġtest Implementation (" com . google . error pr one : error _ pr one _ check _ api :$ error pr one Version ") Ċ } Ċ Ċ // ĠSee Ġhttps :// github . com / gradle / kotlin - dsl / issues / 4 9 2 Ċ publishing Ġ{ ĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠ Ġmaven ( url Ġ= Ġ"$ build Dir / repository ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" test " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks Ġ{ ĊĠĠĠ Ġval Ġpublish Plugins To Test Repository Ġby Ġregistering Ġ{ ĊĠĠĠĠĠĠĠ Ġdepends On (" publish Plugin Maven Publication To Test Repository ") ĊĠĠĠĠĠĠĠ Ġdepends On (" publish Error pr one Plugin Marker Maven Publication To Test Repository ") ĊĠĠĠĠĠĠĠ Ġdepends On (" publish Error pr one - base Plugin Marker Maven Publication To Test Repository ") ĊĠĠĠĠĠĠĠ Ġdepends On (" publish Error pr one - javac plugin Plugin Marker Maven Publication To Test Repository ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtest Ġ{ ĊĠĠĠĠĠĠĠ Ġdepends On ( publish Plugins To Test Repository ) ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Java Home Ġ= Ġproject . find Property (" test . java - home ") ĊĠĠĠĠĠĠĠ Ġtest Java Home ?. also Ġ{ Ġsystem Property (" test . java - home ", Ġit ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġtest Gradle Version Ġ= Ġproject . find Property (" test . gradle - version ") ĊĠĠĠĠĠĠĠ Ġtest Gradle Version ?. also Ġ{ Ġsystem Property (" test . gradle - version ", Ġtest Gradle Version ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġandroid Sdk Home Ġ= Ġproject . find Property (" test . android - sdk - home ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠSystem . getenv (" ANDROID _ SDK _ ROOT ") Ġ?: ĠSystem . getenv (" ANDROID _ HOME ") ĊĠĠĠĠĠĠĠ Ġandroid Sdk Home ?. also Ġ{ Ġsystem Property (" test . android - sdk - home ", Ġandroid Sdk Home ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġsystem Property (" plugin . version ", Ġversion ) ĊĠĠĠĠĠĠĠ Ġsystem Property (" error pr one . version ", Ġerror pr one Version ) ĊĠĠĠĠĠĠĠ Ġsystem Property (" error pr one - javac . version ", Ġerror pr one J av ac Version ) ĊĠĠĠĠĠĠĠ Ġsystem Property (" android - plugin . version ", Ġandroid Plugin Version ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( project . find Property (" test . skip Android "). toString (). to Boolean ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexclude (" ** /* Android * ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtest Logging Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Exceptions Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Stack Tr aces Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception Format Ġ= ĠTest Exception Format . FULL ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ gradle Plugin Ġ{ ĊĠĠĠ Ġplugins Ġ{ ĊĠĠĠĠĠĠĠ Ġregister (" error pr one ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" net . lt gt . error pr one " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdisplayName Ġ= Ġ" Gradle Ġerror - pr one Ġplugin " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation Class Ġ= Ġ" net . lt gt . gradle . error pr one . Error Pr one Plugin " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġregister (" error pr one - base ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" net . lt gt . error pr one - base " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdisplayName Ġ= Ġ" Gradle Ġerror - pr one Ġbase Ġplugin " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation Class Ġ= Ġ" net . lt gt . gradle . error pr one . Error Pr one Base Plugin " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġregister (" error pr one - javac plugin ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" net . lt gt . error pr one - javac plugin " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠdisplayName Ġ= Ġ" Gradle Ġerror - pr one Ġplugin Ġ( as Ġa Ġjav ac Ġplugin )" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimplementation Class Ġ= Ġ" net . lt gt . gradle . error pr one . Error Pr one J av ac Plugin Plugin " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ plugin Bundle Ġ{ ĊĠĠĠ Ġwebsite Ġ= Ġ" https :// github . com / tb roy er / gradle - error pr one - plugin " ĊĠĠĠ Ġv cs Url Ġ= Ġ" https :// github . com / tb roy er / gradle - error pr one - plugin " ĊĠĠĠ Ġdescription Ġ= Ġ" Gradle Ġplugin Ġto Ġuse Ġthe Ġerror - pr one Ġcompiler Ġfor ĠJava " ĊĠĠĠ Ġtags Ġ= ĠlistOf (" javac ", Ġ" error - pr one ") ĊĊĠĠĠ Ġmaven Coordinates Ġ{ ĊĠĠĠĠĠĠĠ ĠgroupId Ġ= Ġproject . group . toString () ĊĠĠĠĠĠĠĠ Ġartifact Id Ġ= Ġproject . name ĊĠĠĠ Ġ} Ċ } Ċ Ċ val Ġk tl int Ġby Ġconfigurations . creating Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġk tl int (" com . github . sh y iko : kt lint : 0 . 2 9 . 0 ") Ċ } Ċ Ċ tasks Ġ{ ĊĠĠĠ Ġval Ġverify K tl int Ġby Ġregistering ( Java Exec :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Check ĠKotlin Ġcode Ġstyle ." ĊĠĠĠĠĠĠĠ Ġclasspath Ġ= Ġk tl int ĊĠĠĠĠĠĠĠ Ġmain Ġ= Ġ" com . github . sh y iko . kt lint . Main " ĊĠĠĠĠĠĠĠ Ġargs (" ** /*. gradle . k ts ", Ġ"** /*. kt ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġcheck Ġ{ ĊĠĠĠĠĠĠĠ Ġdepends On ( verify K tl int ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġregister (" kt lint ", ĠJava Exec :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Fix ĠKotlin Ġcode Ġstyle Ġviolations ." ĊĠĠĠĠĠĠĠ Ġclasspath Ġ= Ġk tl int ĊĠĠĠĠĠĠĠ Ġmain Ġ= Ġ" com . github . sh y iko . kt lint . Main " ĊĠĠĠĠĠĠĠ Ġargs ("- F ", Ġ"** /*. gradle . k ts ", Ġ"** /*. kt ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠString . execute ( env p : ĠArray < String > ?, Ġworking Dir : ĠFile ?) Ġ= ĊĠĠĠ ĠRuntime . get Runtime (). exec ( this , Ġenv p , Ġworking Dir ) Ċ Ċ val ĠProcess . text : ĠString ĊĠĠĠ Ġget () Ġ= ĠinputStream . buffered Reader (). read Text () Ċ