ĠĠĠ Ġ/* Ċ Ġ* ĠSPDX - License - Identifier : ĠApache - 2 . 0 Ċ Ġ* Ċ Ġ* ĠCopyright Ġ 2 0 1 5 - 2 0 2 1 ĠAnd re ĠWhite . Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ import Ġjava . util .* Ċ Ċ plugins Ġ{ ĊĊĠĠĠ Ġid (" org . k ord amp . gradle . project ") ĊĠĠĠ Ġid (" net . th au vin . erik . gradle . semver ") ĊĠĠĠ Ġ` maven - publish ` ĊĠĠĠ Ġid (" com . dor ong old . task - tree ") Ġversion Ġ" 2 . 1 . 0 " Ġ// ĠTemp Ġuntil Ġworking Ġsolution Ġto Ġuser home Ġversion Ġscript ĊĠĠĠ Ġid Ġ(" com . github . Manifest Classpath ") Ġversion Ġ" 0 . 1 . 0 - RELEASE " ĊĠ Ġ// Ġ Ġid Ġ(" be . vb gn . ci - detect ") Ġversion Ġ" 0 . 1 . 0 " Ċ } ĊĊ Ċ // Ġgeneral Ġproject Ġinformation Ċ val ĠprojectName Ġ= Ġproject . name Ċ val Ġgit Hub AccountName Ġ= Ġ" truth encode " Ċ val Ġgit Hub Base Site Ġ= Ġ" https :// github . com /$ git Hub AccountName /${ project . name }" Ċ val Ġsite Issue Tracker Ġ= Ġ"${ git Hub Base Site }/ issues " Ċ val Ġgit Extension Ġ= Ġ"${ project . name }. git " Ċ val Ġsite Sc m Ġ= Ġ"${ git Hub Base Site }/ $ git Extension " Ċ group Ġ= Ġ" io . truth encode " Ċ Ċ val Ġrelease Active : ĠBoolean ? Ġ= Ġroot Project . find Property (" release ") Ġas ĠBoolean ? Ċ Ċ config Ġ{ ĊĠĠĠ Ġrelease Ġ= Ġif Ġ( release Active Ġ!= Ġnull ) Ġrelease Active !! Ġelse Ġfalse ĊĠĠĠ Ġinfo Ġ{ ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" D DO ĠCalcul ations " ĊĠĠĠĠĠĠĠ Ġvendor Ġ= Ġ" Truth Encode " ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" D DO ĠCharacter ĠAnalyzer Ġand ĠPl anner " ĊĠĠĠĠĠĠĠ Ġin ception Year Ġ= Ġ" 2 0 1 5 " ĊĠĠĠĠĠĠĠ Ġversion Ġ= ĠVersion Info (). version ĊĊĠĠĠĠĠĠĠ Ġlinks Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwebsite Ġ= Ġgit Hub Base Site ĊĠĠĠĠĠĠĠĠĠĠĠ Ġissue Tracker Ġ= Ġsite Issue Tracker ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsc m Ġ= Ġsite Sc m ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġsc m Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġgit Hub Base Site ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Connection Ġ= Ġ" scm : git : git @ github . com :$ git Hub AccountName /${ git Extension }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection Ġ= Ġ" scm : git : git :// github . com / github . com /$ git Hub AccountName /$ git Extension " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġorganization Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" Truth Encode " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ" https :// github . com / truth encode " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpeople Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" ad ar ro " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġ" And re ĠWhite " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroles Ġ= ĠlistOf (" developer ", Ġ" owner ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġartifacts Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmin pom Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjar Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġenabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġlicensing Ġ{ ĊĠĠĠĠĠĠĠ Ġexclude s Ġ= Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. md ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. sql ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" **/ avro /**/*. scala ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" build Src \\ build \\ kotlin - dsl \\ plugins - blocks \\ extract ed \\ *. k ts ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. conf " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġincludes Ġ= Ġset Of (" src / main / java /**/*. java "," src / main / scala /*. scala ") ĊĠĠĠĠĠĠĠ Ġlicenses Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= Ġ" Apache - 2 . 0 " Ġ// org . k ord amp . gradle . plugin . base . model . License Id . APACHE _ 2 _ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġ" https :// www . apache . org / licenses / LICENSE - 2 . 0 . txt " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ tasks . create (" show My Version ") Ġ{ ĊĠĠĠ Ġval Ġv Ġ= Ġproject . version ĊĠĠĠ Ġlogger . info (" project Ġversion : Ġ$ v ") ĊĠĠĠ Ġlogger . info ( project . gradle . gradle Version ) Ċ } Ċ Ċ class ĠVersion Info Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠVersion Ġproperties ĊĠĠĠĠ Ġ* ĠReads Ġthe Ġversion . properties Ġfile ĊĠĠĠĠ Ġ* Ġ@ return Ġproperty Ġbag Ġof Ġversion Ġinformation ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġversion Properties (): ĠProperties Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprop Ġ= ĠProperties () ĊĠĠĠĠĠĠĠ Ġval Ġversion File Ġ= Ġroot Project . file (" version . properties ") ĊĠĠĠĠĠĠĠ Ġif Ġ(! version File . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn (" version . properties Ġfile Ġdoes Ġnot Ġexist !") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjava . io . FileInputStream ( version File ). use Ġ{ Ġprop . load ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġprop ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġoptional Property ( key : ĠString , ĠdefaultValue : ĠString ? Ġ= Ġnull ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġread Optional Property ( props , Ġkey , ĠdefaultValue ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġval Ġprops Ġ= Ġversion Properties () ĊĠĠĠ Ġval Ġmajor Ġ= Ġoptional Property (" version . major ", Ġ" 0 ") ?. toInt () ĊĠĠĠ Ġval Ġminor Ġ= Ġoptional Property (" version . minor ", Ġ" 0 ") ?. toInt () ĊĊĠĠĠ Ġ// ĠDefault Ġpatch Ġto Ġ 0 Ġunless Ġmajor Ġand Ġminor Ġare Ġ 0 , Ġas Ġ 0 . 0 . 0 Ġis Ġa Ġsil ly Ġversion . ĊĠĠĠ Ġval Ġpatch Value : ĠInt ? Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ(( major Ġ?: Ġ 0 ) Ġ+ Ġ( minor Ġ?: Ġ 0 ) Ġ== Ġ 0 ) Ġ 1 Ġelse Ġoptional Property (" patch ", Ġ" 0 ") ?. toInt () ĊĊĠĠĠ Ġval Ġpatch Ġ= Ġpatch Value Ġ?: Ġ 0 ĊĠĠĠ Ġval Ġbuild Meta Value Ġ= Ġoptional Property (" version . build Meta ") ĊĠĠĠ Ġval Ġpr erelease Value Ġ= Ġoptional Property (" version . pr erelease ") ĊĠĠĠ Ġval Ġseparator Ġ= Ġoptional Property (" version . separator ", Ġ". ") ĊĠĠĠ Ġval Ġpr erelease Prefix Ġ= Ġoptional Property (" version . pr erelease . prefix ") ĊĠĠĠ Ġval Ġbuild Meta Prefix Ġ= Ġoptional Property (" version . build Meta . prefix ") ĊĠĠĠ Ġval Ġpr erelease Ġ= Ġif Ġ(! pr erelease Value . isNull OrEmpty ()) Ġ"$ pr erelease Prefix $ pr erelease Value " Ġelse Ġ"" ĊĠĠĠ Ġval Ġbuild Meta Ġ= Ġif Ġ(! build Meta Value . isNull OrEmpty ()) Ġ"$ build Meta Prefix $ pr erelease Value " Ġelse Ġ"" ĊĠĠĠ Ġval Ġversion Ġ= Ġ"$ major $ separator $ minor $ separator $ patch $ pr erelease $ build Meta " ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġread Optional Property ( prop : ĠProperties , Ġkey : ĠString , ĠdefaultValue : ĠString ? Ġ= Ġnull ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġo Key Ġ= Ġif Ġ( prop . containsKey ( key )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprop . getProperty ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġp Key Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġo Key . isNull Or Blank () Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġprop . getProperty ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġp Key Ġ?: ĠdefaultValue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ // Ċ // tasks . with Type < com . hi ery nom us . gradle . license . tasks . License Check >() Ġ{ Ċ // ĠĠĠ Ġthis . encoding Ġ= Ġ" UTF - 8 " Ċ //} Ċ Ċ all projects Ġ{ ĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠ Ġmaven Central () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġval Ġsync Version Files Ġby Ġtasks . register ing ( Copy :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( root Project Ġ!= Ġproject ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn (" We Ġare Ġupdating Ġproperties Ġfile Ġin Ġ${ project . name }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ("$ rootDir / version . properties ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinto ( project Dir ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . warn (" in Ġroot Ġproject , Ġnothing Ġdoing ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġtasks . with Type < Process Resources > Ġ{ ĊĠĠĠĠĠĠĠ Ġmust Run After ( sync Version Files ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġtasks . with Type < com . diff plug . gradle . spot less . Spot less Task > Ġ{ ĊĠĠĠĠĠĠĠ Ġmust Run After ( sync Version Files ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġtasks . with Type < com . hi ery nom us . gradle . license . tasks . License Check > Ġ{ ĊĠĠĠĠĠĠĠ Ġmust Run After ( sync Version Files ) ĊĠĠĠ Ġ} Ċ }