ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Loughran <>
Subject Re: How to best create environment specific properties in an applications property file using ANT
Date Fri, 02 Mar 2007 10:35:12 GMT
Stephen Nesbitt wrote:

 > I consider it best practice to *never* incorporate runtime configuration
 > information into a build. When asked to do so I also request that I be
 > given a "way forward machine" that will peer into the future and tell me
 > where it will be deployed.

I dont like hard coding config information into the source or WAR/EAR, 
either, but I do like all system config to be under SCM. Because without 
that you are relying on the ops team to follow your instructions in 
order. Or you are left peering back in time trying to work out what is 
left out.

2. the moment you put any hard coded fact like a URL, hostname or a 
directory path, you have an implicit configuration in there. So unless 
JNDI is used for everything, you have that configuration in there.

3. The moment you add a JAR into the WAR file, you have hard coded a 
configuration -the library that you intend to run with. How do you keep 
them outside the build?

 > Less flippantly, relying on "targeted" builds - builds specific to a 
 > environment - is not scaleable (environments are always growing in my
 > experience), aren't maintainable (someone always forgets to update all
 > the configurations),

That's because you need to use a configuration language with inheritance 
and cross referencing :)

But you are right about the maintenance costs. Nowadays we even keep vm 
images (or the info needed to create them) under SCM, so we can rebuild 

 > aren't flexible (someone needs to test on a new,
 > temporary environment right now and can't because a new configuration 
 > build have to be created.).

That is tricky, especially with a distributed applications. On a more 
positive note, VMWare and Xen let you eliminate many of the differences 
between test and production machines.  But it is possible, and once you 
have the setup to create machines on demand, you can now deploy to 
different system configurations (vista, java6, etc), without too many 
problems. do you know at Cisco they rebuild their network stacks for x86 
so they can test under vmware? The only troublespot these days are 
non-x86 platforms that you cant recompile, or those operating systems 
that refuse to run under vmware/xen (macos, some vista images (well, 
they say don't, but they dont test it yet))

This is how we do it:
and the video:

Stephen, I'm interested to know how you do manage your systems. What CM 
tools do you/ops use?


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message