I got introduced to Maven in the first half of 2003, when I was wrestling with maintaining Ant build scripts. Maven tickled my curiosity but I didn't grasp the concepts. Only when I switched employers to Topicus my new collegues introduced me to Maven and I was hooked.
Maven was still in beta7 or so, but I found it really usable. I like the standard project structure, I do think that creating only one artifact per project is the correct way to build and maintain your projects, I enjoy writing my project documentation about building, installing, deployment and so forth in the XDoc format.
For my open source projects (JWebUnit, and Wicket) I constantly use Maven to maintain the dependencies and generate the website. For Wicket, I've created a special template to allow a much nicer design of the website than is possible with the default Maven template. Our corporate designer, Wouter de Jong, has created a special look-and-feel for the Wicket website, and I had little difficulty to transform his design into the stylesheet you see here.
In my distribution work for Wicket I use several plugins that make my life easier:
- the distribution plugin (dist:build-bin)
- the site plugin (site and site:sshdeploy)
- the xdoc plugin (to generate the changed XDocs quickly use the maven console)
- the sourceforge plugin
- the create-upload-bundle plugin
Areas in which Maven could improve are the performance and the integration of the plugins. If I have run the test plugin, and then I run the site plugin, the tests are performed again, regardless whether anything has changed. This makes using Maven feel slow, and especially the process of performing a release on Sourceforge quite painful.
Although there are enough areas in which Maven could be better, it really makes my job a lot easier and I wouldn't want to go back to solely using Ant at any time.