package Ġcom . f le sh gr inder . gradle . exe Ċ Ċ import Ġcom . f le sh gr inder . gradle . exe . variants . Exe Variant Ċ import Ġjavax . inject . Inject Ċ import Ġorg . gradle . api . Named Domain Object Provider Ċ import Ġorg . gradle . api . Project Ċ import Ġorg . gradle . api . component . Ad hoc Component With Variants Ċ import Ġorg . gradle . api . plugins . Extension Aware Ċ import Ġorg . gradle . api . provider . Property Ċ import Ġorg . gradle . kotlin . dsl . property Ċ Ċ @ Exe Dsl Ċ public Ġabstract Ġclass ĠEx e Publish Extension Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġproject : ĠProject , ĊĠĠĠ Ġprivate Ġval Ġcomponent : ĠNamed Domain Object Provider < Ad hoc Component With Variants >, Ċ ) Ġ: ĠExtension Aware Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠName Ġof Ġthe Ġexe Ġpublication , Ġdefaults Ġto Ġ[ Project . getName ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġname : ĠProperty < String > Ġ= Ġproject . objects . property < String >(). convention ( project . name ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠVersion Ġof Ġthe Ġexe Ġpublication , Ġdefaults Ġto Ġ[ Project . getVersion ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġval Ġversion : ĠProperty < String > Ġ= Ġproject . objects . property < String >(). convention ( project . provider Ġ{ Ġproject . version . toString () Ġ}) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġan Ġoutgoing Ġexe Ġvariant Ġto Ġthis Ġproject . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġpublic Ġfun Ġadd ( variant : ĠEx e Variant ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfiguration Ġ= Ġproject . configurations . register ( variant . classifier ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Can Be Cons umed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Can Be Resolved Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Trans itive Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Visible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġartifacts . add Later ( project . provider Ġ{ Ġvariant Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( attributes ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġattribute ( PLATFORM _ ATTRIBUTE , Ġvariant . platform . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( variant . env Ġ!= Ġnull ) Ġattribute ( ENV _ ATTRIBUTE , Ġvariant . env . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcomponent . configure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Variants From Configuration ( configuration . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap To Maven Scope (" runtime ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġpublic Ġconst Ġval ĠNAME : ĠString Ġ= Ġ" publish " ĊĠĠĠ Ġ} Ċ } Ċ