CruiseControl sucks, at least for me, since there's no out-of-the-box integration with version control, and integration with anything is a pain in general.
Hudson does everything superbly. It runs from a self-deploying WAR file using jetty or deploys as usual in any J2EE server.
Published on June 21, 2009 at 09:16 EDT
Older post: FQ1: Java Thread Pools
Newer post: FQ3: Immutable Classes in Groovy