package Ġnet . x pe ce . gradle . publish Ċ Ċ import Ġcom . android . build . gradle . App Extension Ċ import Ġcom . android . build . gradle . Base Extension Ċ import Ġcom . android . build . gradle . Library Extension Ċ import Ġnet . x pe ce . gradle . publish . Publish Extension . Companion . DEFAULT _ COMPONENT _ NAME Ċ import Ġorg . gradle . api . Plugin Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . Unknown Domain Object Exception Ċ import Ġorg . gradle . kotlin . dsl . apply Ċ import Ġorg . gradle . kotlin . dsl . create Ċ import Ġorg . gradle . kotlin . dsl . getBy Type Ċ Ċ class ĠPublish Plugin Ġ: ĠPlugin < Project > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġapply ( target : ĠProject ) Ġ= Ġtarget . run Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġextension Ġ= Ġextensions . create < Publish Extension >(" x pe ce Publish ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠAutomatically Ġapply Ġpublishing Ġplugin . ĊĠĠĠĠĠĠĠ Ġtarget . plugins . find Plugin (" maven - publish ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġtarget . apply ( plugin Ġ= Ġ" maven - publish ") ĊĊĠĠĠĠĠĠĠ Ġ// ĠWait Ġafter ĠDSL Ġis Ġparsed . ĊĠĠĠĠĠĠĠ Ġafter Evaluate Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠCheck Ġif Ġwe 're Ġrunning ĠAndroid Ġbuild . ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . android ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . apply Android ( extension ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ(_ : ĠUnknown Domain Object Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtarget . apply Java ( extension ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠProject . android : ĠBase Extension ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġextensions . getBy Type () ĊĊĠĠĠ Ġprivate Ġfun ĠProject . apply Android ( extension : ĠPublish Extension ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcomponent Name Ġ= Ġextension . publish Release From Component Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( component Name Ġ== ĠDEFAULT _ COMPONENT _ NAME ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcomponent Name Ġ= Ġwhen Ġ( android ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠLibrary Extension Ġ-> Ġ" release " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠApp Extension Ġ-> Ġ" release _ apk " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalStateException (" Unsupported ĠAndroid Ġextension : Ġ$ android ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġpom Ġ= Ġextension . pom ĊĠĠĠĠĠĠĠ Ġval Ġrepositories Ġ= Ġextension . repositories ĊĠĠĠĠĠĠĠ Ġval Ġpublisher Ġ= ĠAndroid Publisher ( this , Ġcomponent Name , Ġpom , Ġrepositories ) ĊĠĠĠĠĠĠĠ Ġpublisher . publish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠProject . apply Java ( extension : ĠPublish Extension ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġcomponent Name Ġ= Ġextension . publish Release From Component Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ( component Name Ġ== ĠDEFAULT _ COMPONENT _ NAME ) Ġcomponent Name Ġ= Ġ" java " ĊĠĠĠĠĠĠĠ Ġval Ġpom Ġ= Ġextension . pom ĊĠĠĠĠĠĠĠ Ġval Ġrepositories Ġ= Ġextension . repositories ĊĠĠĠĠĠĠĠ Ġval Ġpublisher Ġ= ĠJava Publisher ( this , Ġcomponent Name , Ġpom , Ġrepositories ) ĊĠĠĠĠĠĠĠ Ġpublisher . publish () ĊĠĠĠ Ġ} Ċ } Ċ