I use the same strategy, except I use plain old property files instead of xml. I have also added a user-friendly error message or input task if the TARGET_ENV prop is missing:
<fail unless="TARGET_ENV">You must specify TARGET_ENV on the command line. For example... ant -DTARGET_ENV=dev deploy</fail> Or: <target name="getTargetEnv" unless="TARGET_ENV"> ... Why are you not satisfied with this solution? -Rob A > -----Original Message----- > From: Kanjo, Samer [mailto:[EMAIL PROTECTED] > Sent: Wednesday, May 31, 2006 6:26 AM > To: Ant Users (E-mail) > Subject: Targeting Multiple Environments > > I am curious as to how others are using Ant to target > multiple environments such as development, test, training, > and production. In my world each environment typically has > its own set of databases, servers, and application servers. > > What I have done is externalize all properties into a set of > property files that end with the target environment name (The > target environment names are dev, test, train, and prod). So > if I had a properties file named "myprops.xml" included in > the build I would create one for each environment naming the > files as such: "myprops.xml.dev", "myprops.xml.test", > "myprops.xml.train", "myprops.xml.prod". The build script > would check for an environment variable named TARGET_ENV and > attempt to load the file "myprops.xml" suffixed with the > value of TARGET_ENV. Once loaded all the properties > associated with that target are available to the build script. > > In order for this to work I must specify a value for > TARGET_ENV on the command line. To simplify the command line > I created a batch/shell script that accepts the target > environment and a set of Ant targets and creates the command > line used to invoke Ant. > > This works fine but I am just not happy with the solution. I > have searched the web for solutions others have created for > this problem but it doesn't seem to be anything anyone really > talks about or I am looking in the wrong places. > > So what have you done? > > Samer Kanjo > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] For > additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]