a lot java applications are build with maven. maven has Profiles concept, it is really handy to build release package for different environments. e.g. dev/test/prod
As mentioned in the other replies: it all depends on how you work :)
What we came up with in the last years using maven and now the spring 3.1 profiles is this:
PropertyPlaceholderConfigurer to setup the application (or some JNDI resource depending on the customer). This allows to have only one maven release run.PropertyPlaceholderConfigurer we use anyway.there are some nice tutorials around on how to do that:
we usually only use maven profiles to split the build into different parts for the developers and the continuous integration build. We don't actually use them for target environments anymore for the .war files. We still use maven profiles for automated database deployments, which differ more compared to the web-apps (amount of data, test-data, ...), but these are not delivered as a zip or so.
There are surely other ways to go. I dont think its the end of the story :)
But it may help.