plugins Ġ{ ĊĠĠĠ Ġjava ĊĠĠĠ Ġj aco co Ċ } Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġj center () Ċ } Ċ Ċ jac oco Ġ{ ĊĠĠĠ Ġval Ġj aco co Version : ĠString Ġby Ġproject ĊĠĠĠ Ġtool Version Ġ= Ġj aco co Version Ċ } Ċ Ċ // ĠA Ġresol vable Ġconfiguration Ġto Ġcollect Ġsource Ġcode Ċ val Ġsources Path : ĠConfiguration Ġby Ġconfigurations . creating Ġ{ ĊĠĠĠ Ġis Visible Ġ= Ġfalse ĊĠĠĠ Ġis Can Be Resolved Ġ= Ġtrue ĊĠĠĠ Ġis Can Be Cons umed Ġ= Ġfalse ĊĠĠĠ Ġextends From ( configurations . implementation . get ()) ĊĠĠĠ Ġattributes Ġ{ ĊĠĠĠĠĠĠĠ Ġattribute ( Usage . USAGE _ ATTRIBUTE , Ġobjects . named ( Usage . JAVA _ RUNTIME )) ĊĠĠĠĠĠĠĠ Ġattribute ( Category . CATEGORY _ ATTRIBUTE , Ġobjects . named ( Category . DOCUMENT ATION )) ĊĠĠĠĠĠĠĠ Ġattribute ( Docs Type . DOCS _ TYPE _ ATTRIBUTE , Ġobjects . named (" source - folders ")) ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠA Ġresol vable Ġconfiguration Ġto Ġcollect ĠJ a Co Co Ġcoverage Ġdata Ċ val Ġcoverage Data Path : ĠConfiguration Ġby Ġconfigurations . creating Ġ{ ĊĠĠĠ Ġis Visible Ġ= Ġfalse ĊĠĠĠ Ġis Can Be Resolved Ġ= Ġtrue ĊĠĠĠ Ġis Can Be Cons umed Ġ= Ġfalse ĊĠĠĠ Ġextends From ( configurations . implementation . get ()) ĊĠĠĠ Ġattributes Ġ{ ĊĠĠĠĠĠĠĠ Ġattribute ( Usage . USAGE _ ATTRIBUTE , Ġobjects . named ( Usage . JAVA _ RUNTIME )) ĊĠĠĠĠĠĠĠ Ġattribute ( Category . CATEGORY _ ATTRIBUTE , Ġobjects . named ( Category . DOCUMENT ATION )) ĊĠĠĠĠĠĠĠ Ġattribute ( Docs Type . DOCS _ TYPE _ ATTRIBUTE , Ġobjects . named (" jac oco - coverage - data ")) ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠTask Ġto Ġgather Ġcode Ġcoverage Ġfrom Ġmultiple Ġsub projects Ċ val Ġcode Coverage Report Ġby Ġtasks . register ing ( J aco co Report :: class ) Ġ{ ĊĊĠĠĠ Ġprintln (" jac oco Ġruntime Ġclasspath :") ĊĠĠĠ Ġval Ġmatching Ġ= Ġconfigurations . runtime Classpath . get () ĊĠĠĠĠĠĠĠ Ġ. as File Tree ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġfile Ġ-> Ġfile . isFile Ġ&& Ġfile . path . contains ( project Dir . parent ) Ġ} ĊĠĠĠ Ġmatching . forEach Ġ{ Ġfile Ġ-> Ġprintln ( file . path ) Ġ} ĊĠĠĠ Ġadditional Class Dirs ( matching ) ĊĊĠĠĠ Ġprintln (" jac oco Ġsource Ġdirs :") ĊĠĠĠ Ġval Ġfiles Ġ= Ġsources Path . incoming . artifact View Ġ{ Ġlen ient ( true ) Ġ} ĊĠĠĠĠĠĠĠ Ġ. files ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġfile Ġ-> Ġfile . path . contains ( project Dir . parent ) Ġ} ĊĠĠĠ Ġfiles . forEach Ġ{ Ġfile Ġ-> Ġprintln ( file . path ) Ġ} ĊĠĠĠ Ġadditional Source Dirs ( files ) ĊĊĠĠĠ Ġprintln (" jac oco Ġexecution Ġdata :") ĊĠĠĠ Ġval Ġexecution Data Ġ= Ġcoverage Data Path . incoming . artifact View Ġ{ Ġlen ient ( true ) Ġ} ĊĠĠĠĠĠĠĠ Ġ. files ĊĠĠĠĠĠĠĠ Ġ. filter Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . exists () Ġ&& Ġit . path . endsWith (" exec ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġexecution Data . forEach Ġ{ Ġfile Ġ-> Ġprintln ( file . path ) Ġ} ĊĠĠĠ Ġexecution Data ( execution Data ) ĊĊĠĠĠ Ġreports Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ// Ġxml Ġis Ġusually Ġused Ġto Ġintegrate Ġcode Ġcoverage Ġwith ĊĠĠĠĠĠĠĠ Ġ// Ġother Ġtools Ġlike ĠSon ar Q ube , ĠCover alls Ġor ĠCode cov ĊĠĠĠĠĠĠĠ Ġxml . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ// ĠHTML Ġreports Ġcan Ġbe Ġused Ġto Ġsee Ġcode Ġcoverage ĊĠĠĠĠĠĠĠ Ġ// Ġwithout Ġany Ġexternal Ġtools ĊĠĠĠĠĠĠĠ Ġhtml . isEnabled Ġ= Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ Ċ // val Ġcustom J aco co Test Coverage Verification Ġby Ġtasks . register ing ( J aco co Coverage Verification :: class ) Ġ{ Ċ // ĠĠĠ Ġviolation Rules Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġrule Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġelement Ġ= Ġ" CLASS " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcounter Ġ= Ġ" LINE " Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ" COVER ED RATIO " Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminimum Ġ= ĠBigDecimal . valueOf ( 1 . 0 ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġexclude s Ġ= ĠlistOf ( Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" io . reflect oring . coverage . part . Part ly Cover ed " Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ //} Ċ Ċ // ĠMake ĠJ a Co Co Ġreport Ġgeneration Ġpart Ġof Ġthe Ġ' check ' Ġlifecycle Ġphase Ċ tasks Ġ{ ĊĠĠĠ Ġcheck Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġdepends On ( custom J aco co Test Coverage Verification ) ĊĠĠĠĠĠĠĠ Ġdepends On ( code Coverage Report ) ĊĠĠĠ Ġ} Ċ } Ċ