package Ġcom . bon itas oft . gradle . maven . settings Ċ Ċ import Ġorg . gradle . api . Project Ċ import Ġjava . io . File Ċ import Ġjavax . inject . Inject Ċ Ċ abstract Ġclass ĠMaven Settings Plugin Extension Ġ@ Inject Ġconstructor ( val Ġproject : ĠProject ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġobjects Ġ= Ġproject . objects ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠName Ġof Ġsettings Ġfile Ġto Ġuse . ĠString Ġis Ġevaluated Ġusing Ġ{@ link Ġorg . gradle . api . Project # file ( java . lang . Object )}. ĊĠĠĠĠ Ġ* ĠDefaults Ġto Ġ$ USER _ HOME /. m 2 / settings . xml . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġuser Settings FileName : ĠString Ġ= ĠSystem . getProperty (" user . home ") Ġ+ Ġ"/ . m 2 / settings . xml " ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠList Ġof Ġprofile Ġids Ġto Ġtreat Ġas Ġactive . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġactive Profiles : ĠArray < String > Ġ= Ġempty Array () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠFlag Ġindicating Ġwhether Ġor Ġnot ĠGradle Ġproject Ġproperties Ġshould Ġbe Ġexported Ġfor Ġthe Ġpurposes Ġof Ġsettings Ġfile ĊĠĠĠĠ Ġ* Ġproperty Ġinterpolation Ġand Ġprofile Ġactivation . ĠDefaults Ġto Ġtrue . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġexport Gradle Props Ġ= Ġtrue ĊĊĠĠĠ Ġfun ĠgetUser Settings File (): ĠFile Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġproject . file ( user Settings FileName ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ/* ĊĊĠĠĠ Ġ// ĠExample Ġof Ġa Ġproperty Ġthat Ġis Ġmandatory . ĠThe Ġtask Ġwill ĊĠĠĠ Ġ// Ġfail Ġif Ġthis Ġproperty Ġis Ġnot Ġset Ġas Ġis Ġannotated Ġwith Ġ@ Optional . ĊĠĠĠ Ġval Ġmessage : ĠProperty < String > Ġ= Ġobjects . property ( String :: class . java ) ĊĊĠĠĠ Ġ// ĠExample Ġof Ġa Ġproperty Ġthat Ġis Ġoptional . ĊĠĠĠ Ġval Ġtag : ĠProperty < String > Ġ= Ġobjects . property ( String :: class . java ) ĊĊĠĠĠ Ġ// ĠExample Ġof Ġa Ġproperty Ġwith Ġa Ġdefault Ġset Ġwith Ġ. convention ĊĠĠĠ Ġval ĠoutputFile : ĠRegular File Property Ġ= Ġobjects . file Property (). convention ( ĊĠĠĠĠĠĠĠ Ġproject . layout . build Directory . file ( DEFAULT _ OUTPUT _ FILE ) ĊĠĠĠ Ġ) ĊĠĠĠĠ Ġ*/ Ċ }