Now for my second question to fellow rich client developers. We are quickly outgrowing Ant with our project and are looking for alternatives. We are contemplating Maven, but it doesn't seem to quite fit our application model. What do you use and why?
BTW, our app is composed of a number of "modules" - each module has a client side and a server side. On the client side (the rich client side), the module takes the form of a "plugin" into our rich client (see an earlier post of mine to get an idea of how our plugins are organized). Things are a little more complicated on the server side. First, we really want all server side components to be housed in a single .war. Each "module" has several server side components: Spring config file(s), any number of .jar library files, web services (well, not really, just HttpInvokers that need to be exposed), and a place on the server to house the rich client plugin (since it is loaded via WebStart). Our goal is for each module to be developed as a separate project or subproject and to have the entire build process produce a single .war at the end. This actually happens now in Ant, but it is kind of hacky and hard to maintain. The hard part is putting it into a single .war. For example, we currently manually edit the war's single web.xml to include everything from each project. Ideally we would like each project to somehow declare what it needs in web.xml and then merge all those needs into a single web.xml.