// import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ plugins Ġ{ ĊĠ Ġkotlin (" jvm ") Ġversion Ġ" 1 . 3 . 7 2 " ĊĠ Ġ` java - gradle - plugin ` ĊĠ Ġ` maven - publish ` Ċ } Ċ Ċ try Ġ{ ĊĠ Ġval Ġproperties Ġ= ĠProperties () ĊĠ Ġproperties . load ( file (" local . properties "). inputStream ()) ĊĠ Ġproperties . forEach Ġ{ Ġ( k , Ġv ) Ġ-> ĊĠĠĠ Ġext . set ( k . toString (), Ġv ) ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġset Property ( k . toString (), Ġv ) ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ġcatch Ġ( e : ĠException ) Ġ{ Ċ } Ċ Ċ group Ġ= Ġ" cn . t urs om " Ċ // version Ġ= ĠSimpleDateFormat (" yy . MM . dd - HH . mm "). format ( Date ()) Ċ version Ġ= Ġ" 1 . 0 - SNAPSHOT " Ċ Ċ repositories Ġ{ ĊĠ Ġmaven Central () Ċ } Ċ Ċ dependencies Ġ{ ĊĠ Ġimplementation ( group Ġ= Ġ" org . yaml ", Ġname Ġ= Ġ" s na key aml ", Ġversion Ġ= Ġ" 1 . 2 9 ") ĊĠ Ġimplementation ( file Tree ( map Of (" dir " Ġto Ġ" libs ", Ġ" include " Ġto ĠarrayOf (" *. jar ")) )) Ċ } Ċ Ċ gradle Plugin Ġ{ ĊĠ Ġplugins Ġ{ ĊĠĠĠ Ġcreate (" ts - gradle ") Ġ{ ĊĠĠĠĠĠ Ġ// Ġåľ¨ Ġapp Ġæ¨¡ åĿĹ éľĢè¦ģ éĢļè¿ĩ Ġid Ġ å¼ķçĶ¨ è¿Ļä¸ª æıĴä»¶ ĊĠĠĠĠĠ Ġid Ġ= Ġ" ts - gradle " ĊĠĠĠĠĠ Ġ// Ġ å®ŀçİ° è¿Ļä¸ª æıĴä»¶ çļĦ ç±»çļĦ è·¯å¾Ħ ĊĠĠĠĠĠ Ġimplementation Class Ġ= Ġ" cn . t urs om . gradle . T urs om Gradle Plugin " ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ Ċ publishing Ġ{ ĊĠ Ġrepositories Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" t urs om " ĊĠĠĠĠĠĠĠ Ġval Ġreleases Repo Url Ġ= Ġuri (" https :// nvm . t urs om . cn / repository / maven - releases /") ĊĠĠĠĠĠĠĠ Ġval Ġsnapshot Repo Url Ġ= Ġuri (" https :// nvm . t urs om . cn / repository / maven - snapshots /") ĊĠĠĠĠĠĠĠ Ġurl Ġ= Ġif Ġ( project . version . toString (). endsWith (" SNAPSHOT ")) Ġsnapshot Repo Url Ġelse Ġreleases Repo Url ĊĠĠĠĠĠĠĠ Ġcredentials Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġval Ġart ifactory User : ĠString Ġ= Ġroot Project . ext [" t urs om . art ifactory User "] Ġas ĠString ĊĠĠĠĠĠĠĠĠĠ Ġval Ġart ifactory Password : ĠString Ġ= Ġroot Project . ext [" t urs om . art ifactory Password "] Ġas ĠString ĊĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġart ifactory User ĊĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġart ifactory Password ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠ Ġprintln (" cannot Ġpush Ġto Ġrepository Ġt urs om ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠ Ġname Ġ= Ġ" GitHub Packages " ĊĠĠĠĠĠĠĠ Ġval Ġgithub User : ĠString Ġ= Ġroot Project . ext [" github . art ifactory User "] Ġas ĠString ĊĠĠĠĠĠĠĠ Ġval Ġgithub Token : ĠString Ġ= Ġroot Project . ext [" github . art ifactory Password "] Ġas ĠString ĊĠĠĠĠĠĠĠ Ġurl Ġ= Ġuri (" https :// maven . pkg . github . com /$ github User / T urs om Server ") ĊĠĠĠĠĠĠĠ Ġcredentials Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġgithub User ĊĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġgithub Token ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠ Ġprintln (" cannot Ġpush Ġto Ġrepository Ġgithub ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġrepositories Regex Ġ= Ġ" repositories \\ .[ a - zA - z ]* ". to Regex () ĊĠĠĠ Ġroot Project . properties . keys . as Sequence (). filter Ġ{ ĊĠĠĠĠĠ Ġit Ġmatches Ġrepositories Regex ĊĠĠĠ Ġ}. forEach Ġ{ ĊĠĠĠĠĠ Ġval Ġrepository Name Ġ= Ġroot Project . ext . properties [" $ it . name "] ?. toString () Ġ?: Ġit . substring After Last ('.') ĊĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġart ifactory User Ġ= Ġroot Project . ext . properties [" $ it . art ifactory User "]. toString () ĊĠĠĠĠĠĠĠ Ġval Ġart ifactory Password Ġ= Ġroot Project . ext . properties [" $ it . art ifactory Password "]. toString () ĊĠĠĠĠĠĠĠ Ġmaven Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġrepository Name ĊĠĠĠĠĠĠĠĠĠ Ġval Ġreleases Repo Url Ġ= Ġroot Project . ext . properties [" $ it . release "] ?. let Ġ{ Ġuri ( it . toString ()) Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġval Ġsnapshot Repo Url Ġ= Ġroot Project . ext . properties [" $ it . snapshot "] ?. let Ġ{ Ġuri ( it . toString ()) Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġval Ġrepo Url Ġ= Ġroot Project . ext . properties [" $ it . url "] ?. let Ġ{ Ġuri ( it . toString ()) Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġif Ġ( project . version . toString (). endsWith (" SNAPSHOT ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġsnapshot Repo Url Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsnapshot Repo Url ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġreleases Repo Url Ġ?: Ġrepo Url !! ĊĠĠĠĠĠĠĠĠĠ Ġcredentials Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġart ifactory User ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġart ifactory Password ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" cannot Ġpush Ġto Ġrepository Ġ$ repository Name ") ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĠ Ġpublications Ġ{ ĊĠĠĠ Ġcreate < Maven Publication >(" plugin ") Ġ{ ĊĠĠĠĠĠ ĠgroupId Ġ= Ġproject . group . toString () ĊĠĠĠĠĠ Ġartifact Id Ġ= Ġproject . name ĊĠĠĠĠĠ Ġversion Ġ= Ġproject . version . toString () ĊĊĠĠĠĠĠ Ġfrom ( components [" java "]) ĊĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġartifact ( tasks [" kotlin Sources Jar "]) ĊĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ