Aug 26th, 2010, 08:45 AM
Automatic build of project with different config files for different customers
I have a problem where I'm responsible for an application sold to different customers.
Some background: The application uses Spring, Spring security, Hibernate etc. Each customer has different configurations in the config files. For example if they uses LDAP or locale database for user accounts and the configuration for the ldap setup and so on. There are also other configurations that are specific for each customer. Some configurations are put in a database and modifiable during runtime but some are in the spring xml files. My problem is that I currently uses different branches in Subversion for each customer with each customers unique configuration and the general version in the trunk. When new fixes are put in the trunk I have to update the branches of the customers to create new war-files.
I don't feel that this is a really good way of handling an application with different configurations for each customers in the config files.
Question: I wonder if anyone of you out there is having the same problem but a better solution? I currently have no good knowledge about ant and maven but I'm hoping that one of them could help me in any way? Like having an ant build-file that checks out the general version from trunk and then replaces the general config files with those of the specific customer? Anyone knows if that is possible and willing to hint me in the correct direction if so?
I would be really happy for any answers that could help me move forward with this.
Sep 29th, 2010, 05:29 AM
Take a look at Maven profiles, it enables pretty much what you want in a (IMHO) really nice way:
Of course if you're not using Maven today there is some overhead in learning it and adapting your project to using it. I think it's definitely worth it in the long run, though.
Sep 29th, 2010, 05:51 AM
:-) Thanks! Than I guess it's finally time to learn a few things about Maven.