@ file : Suppress (" Un stable Api Usage ") Ċ Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . publish . Publishing Extension Ċ import Ġorg . gradle . api . publish . maven . Maven Publication Ċ import Ġorg . gradle . api . tasks . bund ling . Jar Ċ import Ġorg . gradle . api . tasks . testing . Test Ċ import Ġorg . gradle . kotlin . dsl .* Ċ import Ġorg . gradle . plugins . signing . Signing Extension Ċ import Ġorg . jetbrains . dok ka . gradle . D ok ka Task Ċ Ċ fun ĠProject . configure Base ( ĊĠĠĠ Ġartifact Name : ĠString , ĊĠĠĠ Ġsource Path : ĠAny , ĊĠĠĠ Ġcomponent Name : ĠString Ċ ) Ġ{ ĊĠĠĠ Ġapply ( plugin Ġ= Ġ" org . jetbrains . dok ka ") ĊĠĠĠ Ġapply ( plugin Ġ= Ġ" org . gradle . maven - publish ") ĊĠĠĠ Ġapply ( plugin Ġ= Ġ" org . gradle . signing ") ĊĊĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠ Ġ" api "( kotlin ( module Ġ= Ġ" stdlib ", Ġversion Ġ= ĠVersions . kotlin )) ĊĊĠĠĠĠĠĠĠ Ġ" test Runtime Only "( kotlin ( module Ġ= Ġ" test ", Ġversion Ġ= ĠVersions . kotlin )) ĊĠĠĠĠĠĠĠ Ġ" test Runtime Only "( kotlin ( module Ġ= Ġ" reflect ", Ġversion Ġ= ĠVersions . kotlin )) ĊĠĠĠĠĠĠĠ Ġ" test Implementation "( Dependencies . k lu ent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexclude ( group Ġ= Ġ" org . jetbrains . kotlin ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ" test Implementation "( Dependencies . spe k Api ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexclude ( group Ġ= Ġ" org . jetbrains . kotlin ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ" test Runtime Only "( Dependencies . spe k 2 Runner J unit 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexclude ( group Ġ= Ġ" org . jetbrains . kotlin ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ" test Runtime Only "( kotlin ( module Ġ= Ġ" stdlib - jdk 8 ", Ġversion Ġ= ĠVersions . kotlin )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġgroup Ġ= Ġ" org . rew ed ig ital . kat ana " ĊĠĠĠ Ġversion Ġ= ĠVersion . version ĊĊĠĠĠ Ġtasks . with Type < Jar > Ġ{ ĊĠĠĠĠĠĠĠ Ġarchive Base Name . set ( artifact Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġdok ka Ġ= Ġtasks . with Type ( D ok ka Task :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdependencies Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplugins (" org . jetbrains . dok ka : kotlin - as - java - plugin : 1 . 4 . 2 0 ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġoutput Directory . set ( build Dir . resolve (" dok ka Javadoc ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġsources Jar Ġby Ġtasks . register ing ( Jar :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġarchive Classifier . set (" sources ") ĊĠĠĠĠĠĠĠ Ġfrom ( source Path ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġjava Doc Ġby Ġtasks . register ing ( Jar :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdepends On ( dok ka ) ĊĠĠĠĠĠĠĠ Ġarchive Classifier . set (" javadoc ") ĊĠĠĠĠĠĠĠ Ġfrom ("$ build Dir / dok ka Javadoc ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġtasks . with Type ( Test :: class ) Ġ{ ĊĠĠĠĠĠĠĠ Ġuse JUnit Platform Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinclude En gin es (" spe k 2 ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġafter Evaluate Ġ{ ĊĠĠĠĠĠĠĠ Ġconfigure < Publishing Extension > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpublications Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcreate < Maven Publication >( artifact Name ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrom ( components [ component Name ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( sources Jar . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact ( java Doc . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Id Ġ= Ġartifact Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Common P om Attributes () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconfigure < Signing Extension > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpub Ġ= Ġextensions . findBy Type ( Publishing Extension :: class ) !! ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFor ĠCI Ġstore Ġsigning Ġkey Ġand Ġpassword Ġin Ġenvironment Ġvariables ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSIGN ING _ KEY Ġand ĠSIGN ING _ PASSWORD ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsigning Key : ĠString ? Ġ= ĠSystem . getenv (" SIGN ING _ KEY ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsigning Password : ĠString ? Ġ= ĠSystem . getenv (" SIGN ING _ PASSWORD ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( signing Key Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġuse InMemory P gp Keys ( signing Key , Ġsigning Password . or Empty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġsign ( pub . publications [ artifact Name ]) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ