agilejoy
agilejoy

Reputation: 69

Replacing property dynamically based on environments in Ant scripts

I want to develop ant script which replaces application properties with environment specific properties. My requirement is that I will have all environment properties in single env.properties file. During building the application I need to replace with whatever in env.properties file. Ant replace works well when I have property files for each environment.

Sample : env.properties

dev.AddNETWORK_USER=devUser
dev.ADDPASS=devPass
sit.AddNETWORK_USER=situser
sit.ADDPASS=sitPass

This needs be replaced in mule.properties as for DEV environment:

dev.AddNETWORK_USER=devUser
dev.ADDPASS=devPass

for SIT environment:

AddNETWORK_USER=sitUser
ADDPASS=sitPass

Upvotes: 1

Views: 1582

Answers (1)

user1587504
user1587504

Reputation: 764

You can use property ant task on your env.properties file. This allows to access key=value pair based on your need. You can redirect your environment specific properties to file you want or write to one specific file.

 <property file="${base.dir}/env.properties"/>
    <for list="dev,sit" param="value">
         <sequential>
              <echo message="@{value}.AddNETWORK_USER=${@{value}.AddNETWORK_USER}" append="true" file="${base.dir}/@{value}Any-File.prop"/>
               <echo message="${line.separator}" append="true" file="${para.home}/@{value}Any-File.prop"/>
               <echo message="@{value}.ADDPASS=${@{value}.ADDPASS}" append="true" file="${para.home}/@{value}Any-File.prop"/>

           </sequential>
     </for>

Upvotes: 1

Related Questions