import Ġorg . gradle . jvm . tasks . Jar Ċ import Ġjava . net . URI Ċ Ċ val Ġcommon s Compress Version : ĠString Ġby Ġproject Ċ val Ġjunit J upiter Version : ĠString Ġby Ġproject Ċ val Ġfile Worker Version : ĠString Ġby Ġproject Ċ val Ġx z Version : ĠString Ġby Ġproject Ċ val Ġmyst ic Crypt Version : ĠString Ġby Ġproject Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġsigning ĊĠĠĠ Ġj aco co ĊĠĠĠ Ġkotlin (" jvm ") Ġversion Ġ" 1 . 3 . 6 1 " ĊĠĠĠ Ġid (" java ") ĊĠĠĠ Ġid (" maven - publish ") ĊĠĠĠ Ġid (" com . github . ben - man es . versions ") Ġversion Ġ" 0 . 2 7 . 0 " ĊĠĠĠ Ġid (" com . github . hi ery nom us . license ") Ġversion Ġ" 0 . 1 5 . 0 " ĊĠĠĠ Ġid (" org . jetbrains . dok ka ") Ġversion Ġ" 0 . 1 0 . 0 " Ċ } Ċ Ċ group Ġ= Ġ" de . alph ar og roup " Ċ version Ġ= Ġ" 1 - SNAPSHOT " Ċ description Ġ= Ġ" zip - worker " Ċ Ċ java Ġ{ ĊĠĠĠ Ġsource Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 ĊĠĠĠ Ġtarget Compatibility Ġ= ĠJava Version . VERSION _ 1 _ 8 Ċ } Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġj center () ĊĠĠĠ Ġmaven Local () ĊĠĠĠ Ġmaven Central () Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġimplementation ( kotlin (" stdlib - jdk 8 ")) ĊĠĠĠ Ġimplementation (" org . apache . commons : commons - compress :$ commons Compress Version ") ĊĠĠĠ Ġimplementation (" org . t uka ani : xz :$ xz Version ") ĊĠĠĠ Ġimplementation (" de . alph ar og roup : file - worker :$ file Worker Version ") ĊĠĠĠ Ġtest Implementation (" de . alph ar og roup : m yst ic - crypt :$ m yst ic Crypt Version ") ĊĠĠĠ Ġtest Implementation (" org . junit . jupiter : junit - jupiter :$ junit J upiter Version ") Ċ } Ċ Ċ // ĠConfigure Ġexisting ĠD ok ka Ġtask Ġto Ġoutput ĠHTML Ġto Ġtypical ĠJ avadoc Ġdirectory Ċ tasks . dok ka Ġ{ ĊĠĠĠ Ġoutput Format Ġ= Ġ" html " ĊĠĠĠ Ġoutput Directory Ġ= Ġ"$ build Dir / javadoc " Ċ } Ċ Ċ // ĠCreate Ġdok ka ĠJar Ġtask Ġfrom Ġdok ka Ġtask Ġoutput Ċ val Ġdok ka Jar Ġby Ġtasks . creating ( Jar :: class ) Ġ{ ĊĠĠĠ Ġgroup Ġ= ĠJava Base Plugin . DOCUMENT ATION _ GROUP ĊĠĠĠ Ġdescription Ġ= Ġ" As semb les ĠKotlin Ġdocs Ġwith ĠD ok ka " ĊĠĠĠ Ġarchive Classifier . set (" javadoc ") ĊĠĠĠ Ġ// Ġdepends On ( tasks . dok ka ) Ġnot Ġneeded ; Ġdependency Ġautomatically Ġinferred Ġby Ġfrom ( tasks . dok ka ) ĊĠĠĠ Ġfrom ( tasks . dok ka ) Ċ } Ċ Ċ val Ġsources Jar Ġby Ġtasks . register ing ( Jar :: class ) Ġ{ ĊĠĠĠ Ġarchive Classifier . set (" sources ") ĊĠĠĠ Ġfrom ( source Sets . main . get (). all Source ) Ċ } Ċ Ċ publishing Ġ{ ĊĠĠĠ Ġpublications Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate < Maven Publication >(" maven Java ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( components [" java "]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( sources Jar . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( dok ka Jar ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpom Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set ( root Project . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" https :// github . com / astr api 6 9 /" Ġ+ Ġroot Project . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdescription . set (" Extension Ġmethods Ġfor Ġz ipping Ġfiles Ġin Ġ 7 z - format Ġand Ġextract ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġorganization Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" Alpha ĠRo ĠGroup ĠU G Ġ( ha ft ung sb es chr Ã¤ng t )") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" http :// www . alph ar og roup . de /") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġissue Management Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsystem . set (" GitHub ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" https :// github . com / astr api 6 9 /" Ġ+ Ġroot Project . name Ġ+ Ġ"/ issues ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicenses Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlicense Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" MIT ĠLicense ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" http :// www . opensource . org / licenses / mit - license . php ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdistribution . set (" repo ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdevelopers Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid . set (" astr api 6 9 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname . set (" A ster ios ĠR apt is ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsc m Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . set (" scm : git : git :@ github . com : astr api 6 9 /" Ġ+ Ġroot Project . name Ġ+ Ġ". git ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdeveloper Connection . set (" scm : git : git @ github . com : astr api 6 9 /" Ġ+ Ġroot Project . name Ġ+ Ġ". git ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl . set (" git :@ github . com : astr api 6 9 /" Ġ+ Ġroot Project . name Ġ+ Ġ". git ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġusername String Ġ= ĠSystem . getenv (" oss rh Username ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġproject . property (" oss rh Username ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpassword String Ġ= ĠSystem . getenv (" oss rh Password ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġproject . property (" oss rh Password ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġusername String . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġpassword String . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreleases Repo Url Ġ= Ġ" https :// oss . son atype . org / service / local / staging / deploy / maven 2 /" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsnapshots Repo Url Ġ= Ġ" https :// oss . son atype . org / content / repositories / snapshots " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproject Version Ġ= Ġversion . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl String Ġ= Ġif Ġ( project Version . endsWith (" SNAPSHOT ")) Ġsnapshots Repo Url Ġelse Ġreleases Repo Url ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= ĠURI . create ( url String ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ license Ġ{ ĊĠĠĠ Ġext . set (" year ", Ġ" 2 0 2 0 ") ĊĠĠĠ Ġext . set (" owner ", Ġ" A ster ios ĠR apt is ") ĊĠĠĠ Ġheader Ġ= Ġroot Project . file (" src / main / resources / LICENSE . txt ") ĊĠĠĠ Ġval Ġvalue Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" **/ README ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" **/ README . md ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" **/ LICENSE ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" **/ NOTICE ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. xml ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. xsl ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. xsd ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. dtd ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. html ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. json ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. jsp ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. jpa ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. sql ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. properties ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. bat ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. gradle ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. MF ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. txt ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. vm ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. log ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. map ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. js . map ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. tmpl ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. js . tmpl ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"** /*. editor config ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" src / test / resources /** ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" src / main / resources /** ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" out /** ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" build /** " ĊĠĠĠ Ġ) ĊĠĠĠ Ġexclude s ( value ) Ċ } Ċ Ċ // Ġwork hack Ġfor Ġlicense Ġissue Ġ# 7 6 Ċ gradle . start Parameter . excluded Task Names Ġ+= Ġ" license Main " Ċ gradle . start Parameter . excluded Task Names Ġ+= Ġ" license Test " Ċ Ċ signing Ġ{ ĊĠĠĠ Ġsign ( publishing . publications [" maven Java "]) Ċ } Ċ Ċ tasks Ġ{ ĊĠĠĠ Ġcompile Kotlin Ġ{ ĊĠĠĠĠĠĠĠ Ġkotlin Options . jvm Target Ġ= Ġ" 1 . 8 " ĊĠĠĠ Ġ} ĊĠĠĠ Ġcompile Test Kotlin Ġ{ ĊĠĠĠĠĠĠĠ Ġkotlin Options . jvm Target Ġ= Ġ" 1 . 8 " ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks . test Ġ{ ĊĠĠĠ Ġuse JUnit Platform () ĊĠĠĠ Ġtest Logging { ĊĠĠĠĠĠĠĠ Ġevents (" passed ", Ġ" skipped ", Ġ" failed ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks . jac oco Test Report Ġ{ ĊĠĠĠ Ġreports Ġ{ ĊĠĠĠĠĠĠĠ Ġxml . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġcsv . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġhtml . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġhtml . destination Ġ= Ġfile ("$ build Dir / reports / coverage ") ĊĠĠĠ Ġ} Ċ } Ċ Ċ tasks . jac oco Test Coverage Verification Ġ{ ĊĠĠĠ Ġviolation Rules Ġ{ ĊĠĠĠĠĠĠĠ Ġrule Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlimit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġminimum Ġ= Ġ" 0 . 0 ". to BigDecimal () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ val Ġtest Coverage Ġby Ġtasks . register ing Ġ{ ĊĠĠĠ Ġgroup Ġ= Ġ" verification " ĊĠĠĠ Ġdescription Ġ= Ġ" Runs Ġthe Ġunit Ġtests Ġwith Ġcoverage ." ĊĊĠĠĠ Ġdepends On (": test ", Ġ": jac oco Test Report ", Ġ": jac oco Test Coverage Verification ") ĊĠĠĠ Ġval Ġj aco co Test Report Ġ= Ġtasks . find ByName (" jac oco Test Report ") ĊĠĠĠ Ġj aco co Test Report ?. must Run After ( tasks . find ByName (" test ")) ĊĠĠĠ Ġtasks . find ByName (" jac oco Test Coverage Verification ") ?. must Run After ( jac oco Test Report ) Ċ }