/* Ċ Ġ* ĠCopyright Ġ 2 0 1 0 - 2 0 2 0 ĠJetBrains Ġs . r . o . Ġand ĠKotlin ĠProgramming ĠLanguage Ġcontributors . Ċ Ġ* ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense Ġthat Ġcan Ġbe Ġfound Ġin Ġthe Ġlicense / LICENSE . txt Ġfile . Ċ Ġ*/ Ċ Ċ import Ġcom . gradle . publish . Plugin Bundle Extension Ċ import Ġcom . gradle . publish . Plugin Config Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . publish . Publication Container Ċ import Ġorg . gradle . api . publish . Publishing Extension Ċ import Ġorg . gradle . api . publish . maven . Maven Publication Ċ import Ġorg . gradle . api . publish . maven . tasks . Publish To Maven Repository Ċ import Ġorg . gradle . api . tasks . bund ling . Jar Ċ import Ġorg . gradle . kotlin . dsl .* Ċ import Ġplugins . Kotlin Build Publishing Plugin Ċ import Ġplugins . configure Repository Ċ import Ġplugins . main Publication Name Ċ import Ġjava . util .* Ċ Ċ internal Ġconst Ġval ĠP LU GIN _ MARKER _ SUFFIX Ġ= Ġ". gradle . plugin " Ċ Ċ @ Opt In ( Experimental Std lib Api :: class ) Ċ fun ĠProject . publish Plugin Markers ( with Empty J ars : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĊĠĠĠ Ġfun ĠProject . is Son atype Publish (): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠ Ġhas Property (" is Son atype Publish ") Ġ&& Ġproperty (" is Son atype Publish ") Ġas ĠBoolean ĊĊĠĠĠ Ġval Ġplugin Development Ġ= Ġextensions . getBy Type < Plugin Bundle Extension >() ĊĠĠĠ Ġval Ġpublishing Extension Ġ= Ġextensions . getBy Type < Publishing Extension >() ĊĠĠĠ Ġval Ġmain Publication Ġ= Ġpublishing Extension . publications [ main Publication Name ] Ġas ĠMaven Publication ĊĊĠĠĠ Ġplugin Development . plugins . forEach Ġ{ Ġdeclaration Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġmarker Publication Ġ= Ġcreate Maven Marker Publication ( declaration , Ġmain Publication , Ġpublishing Extension . publications ) ĊĠĠĠĠĠĠĠ Ġif Ġ( with Empty J ars ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Empty Jar Artifacts ( marker Publication ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġtasks . named < Publish To Maven Repository >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" publish ${ marker Publication . name . capitalize ( Locale . ROOT )} Publication To ${ Kotlin Build Publishing Plugin . REPOSITORY _ NAME } Repository " ĊĠĠĠĠĠĠĠ Ġ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure Repository () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfigure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġonly If Ġ{ Ġ! is Son atype Publish () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠProject . add Empty Jar Artifacts ( publication : ĠMaven Publication ) Ġ{ ĊĠĠĠ Ġval Ġempty Jar Ġ= Ġget OrCreate Task < Jar >(" empty Jar ") Ġ{ ĊĠĠĠĠĠĠĠ Ġarchive Base Name . set (" empty ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublication . artifact ( empty Jar . get ()) Ġ{ Ġ} ĊĠĠĠ Ġpublication . artifact ( empty Jar . get ()) Ġ{ Ġclassifier Ġ= Ġ" sources " Ġ} ĊĠĠĠ Ġpublication . artifact ( empty Jar . get ()) Ġ{ Ġclassifier Ġ= Ġ" javadoc " Ġ} Ċ } Ċ Ċ // ĠBased Ġon Ġcode Ġfrom Ġ` java - gradle - plugin ` Ċ // Ġhttps :// github . com / gradle / gradle / blob / v 6 . 4 . 0 / sub projects / plugin - development / src / main / java / org / gradle / plugin / devel / plugins / Maven Plugin Publish Plugin . java # L 8 4 Ċ private Ġfun Ġcreate Maven Marker Publication ( ĊĠĠĠ Ġdeclaration : ĠPlugin Config , ĊĠĠĠ Ġcoordinates : ĠMaven Publication , ĊĠĠĠ Ġpublications : ĠPublic ation Container Ċ ): ĠMaven Publication Ġ{ ĊĠĠĠ Ġreturn Ġpublications . create < Maven Publication >( declaration . name . toString () Ġ+ Ġ" Plugin Marker Maven ") Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplugin Id : ĠString Ġ= Ġdeclaration . id ĊĠĠĠĠĠĠĠ Ġval Ġc GroupId Ġ= Ġcoordinates . groupId ĊĠĠĠĠĠĠĠ Ġval Ġc Artifact Id Ġ= Ġcoordinates . artifactId ĊĠĠĠĠĠĠĠ Ġval Ġc Version Ġ= Ġcoordinates . version ĊĠĠĠĠĠĠĠ Ġartifact Id Ġ= Ġplugin Id Ġ+ ĠP LU GIN _ MARKER _ SUFFIX ĊĠĠĠĠĠĠĠ ĠgroupId Ġ= Ġplugin Id ĊĠĠĠĠĠĠĠ Ġpom . with Xml Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġas Element () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= Ġroot . owner Document ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdependencies Ġ= Ġroot . appendChild ( document . createElement (" dependencies ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdependency Ġ= Ġdependencies . appendChild ( document . createElement (" dependency ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠgroupId Ġ= Ġdependency . appendChild ( document . createElement (" groupId ")) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgroupId . textContent Ġ= Ġc GroupId ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġartifact Id Ġ= Ġdependency . appendChild ( document . createElement (" artifactId ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifact Id . textContent Ġ= Ġc Artifact Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġversion Ġ= Ġdependency . appendChild ( document . createElement (" version ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġversion . textContent Ġ= Ġc Version ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpom . name . set ( declaration . displayName ) ĊĠĠĠĠĠĠĠ Ġpom . description . set ( declaration . description ) ĊĠĠĠ Ġ} Ċ } Ċ