import Ġgro ovy . util . Node Ċ import Ġjava . net . URI Ċ import Ġjava . util . Properties Ċ Ċ plugins Ġ{ ĊĠĠĠ Ġid (" java - library ") ĊĠĠĠ Ġkotlin (" jvm ") Ġversion Ġ" 1 . 3 . 7 2 " ĊĠĠĠ Ġid (" com . github . john ren gel man . shadow ") Ġversion Ġ" 5 . 1 . 0 " ĊĠĠĠ Ġid (" signing ") ĊĠĠĠ Ġid (" maven - publish ") Ċ } Ċ Ċ dependencies Ġ{ ĊĠĠĠ Ġcompile Only ( gradle Api ()) ĊĠĠĠ Ġset Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . android . tools . build : gradle : 3 . 6 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . jetbrains . kotlin : kotlin - stdlib - jdk 8 : 1 . 3 . 7 2 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠDo Ġnot Ġupdate ĠJack son Ġ- Ġ 2 . 1 0 . x Ġhas Ġbinary - in compatible Ġchanges Ġthat Ġwill Ġbreak Ġother Ġplugins ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . fasterxml . jackson . core : jackson - databind : 2 . 9 . 9 . 3 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . fasterxml . jackson . module : jackson - module - kotlin : 2 . 9 . 9 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" com . fasterxml . jackson . data format : jackson - data format - yaml : 2 . 9 . 9 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" org . ow 2 . asm : asm : 6 . 0 "). forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġimplementation ( it ) ĊĠĠĠĠĠĠĠ Ġshadow ( it ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ repositories Ġ{ ĊĠĠĠ Ġgoogle () ĊĠĠĠ Ġj center () ĊĠĠĠ Ġmaven Central () Ċ } Ċ Ċ tasks Ġ{ ĊĠĠĠ Ġcompile Kotlin Ġ{ ĊĠĠĠĠĠĠĠ Ġkotlin Options Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġj vm Target Ġ= Ġ" 1 . 8 " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠThe Ġrest Ġof Ġthis Ġfile Ġis Ġconfiguration Ġfor Ġpublishing Ġto ĠMaven ĠCentral Ċ Ċ val Ġsource Jar Ġby Ġtasks . register ing ( Jar :: class ) Ġ{ ĊĠĠĠ Ġarchive Classifier . set (" sources ") ĊĠĠĠ Ġfrom ( source Sets [" main "]. all Source ) Ċ } Ċ Ċ artifacts Ġ{ ĊĠĠĠ Ġarch ives ( tasks . get ByName (" jar ")) ĊĠĠĠ Ġarch ives ( source Jar ) Ċ } Ċ Ċ signing Ġ{ ĊĠĠĠ Ġsign ( configurations . get ByName (" archives ")). forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġit . signatures . removeAll Ġ{ Ġone Sig Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . signatures . count Ġ{ Ġanother Sig Ġ-> Ġone Sig . classifier Ġ== Ġanother Sig . classifier Ġ} Ġ> Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ val Ġproperties Ġ= ĠProperties (). also Ġ{ Ġit . load ( root Project . file (" local . properties "). inputStream ()) Ġ} Ċ Ċ publishing Ġ{ ĊĠĠĠ Ġpublications Ġ{ ĊĠĠĠĠĠĠĠ Ġregister (" maven Java ", ĠMaven Publication :: class ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpom . with Xml Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġas Node (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Node (" description ", Ġ" MP Ġmodule Ġmanager ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Node (" name ", Ġ" e MP ire ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Node (" url ", Ġ" https :// github . com / cs 1 2 5 - ill inois / e MP ire ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNode ( this , Ġ" licenses "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNode ( this , Ġ" license "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Node (" name ", Ġ" Apache ĠLicense Ġ 2 . 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Node (" url ", Ġ" https :// www . apache . org / licenses / LICENSE - 2 . 0 . txt ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNode ( this , Ġ" scm "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Node (" url ", Ġ" https :// github . com / cs 1 2 5 - ill inois / e MP ire ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Node (" connection ", Ġ" scm : git : git :// github . com / cs 1 2 5 - ill inois / e MP ire . git ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Node (" developer Connection ", Ġ" scm : git : ssh :// git @ github . com : cs 1 2 5 - ill inois / e MP ire . git ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNode ( this , Ġ" developers "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNode ( this , Ġ" developer "). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend Node (" name ", Ġ" CS Ġ 1 2 5 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgroupId Ġ= Ġ" com . github . cs 1 2 5 - ill inois " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Id Ġ= Ġ" emp ire " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion Ġ= Ġ" 2 0 2 0 . 1 . 5 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( components . get ByName (" java ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpom . with Xml Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpom File Ġ= Ġproject . file ("${ project . build Dir }/ generated - pom . xml ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpom File . write Text ( asString (). toString (). replace (" <? xml Ġversion =\" 1 . 0 \" ?> ", Ġ"<? xml Ġversion =\" 1 . 0 \" Ġencoding =\" UTF - 8 \" ?> ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( signing . sign ( pom File ). signature Files . single File ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclassifier Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextension Ġ= Ġ" pom . asc " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( tasks . get ByName (" sign Arch ives ") Ġas ĠSign ). signature Files . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclassifier Ġ= Ġif Ġ( it . name . replace (". jar . asc ", Ġ""). endsWith (" sources ")) Ġ" sources " Ġelse Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextension Ġ= Ġ" jar . asc " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġrepositories Ġ{ ĊĠĠĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= ĠURI (" https :// oss . son atype . org / service / local / staging / deploy / maven 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġproperties [" oss rh . username "] Ġas ? ĠString ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġproperties [" oss rh . password "] Ġas ? ĠString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ after Evaluate Ġ{ ĊĠĠĠ Ġtasks . filter Ġ{ Ġit . name . startsWith (" publish Maven Java Publication To ") Ġ}. forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġit . depends On (" sign Arch ives ") ĊĠĠĠ Ġ} Ċ } Ċ