And, Maven and Hudson/Jenkins are all very different.
Both Ant and Maven can build Java apps. Ant is more of a scripting tool where you have to tell it everything to do and how to do it. Maven is a black box that know how to do a certain number of things and can do those things automatically with little configuration. Usually, if I find that Maven knows how to do what I want it to, I use Maven. If it doesn't, I use Ant. And I have used Ant for some very strange tasks that had nothing to do with building Java apps.
Hudson/Jenkins, on the other hand, cannot compile or build anything. What it can do, however, is fire off scripts, either at given intervals or on detecting that someone checked changes into version control. So you still have to write the script to build the code. But at least Hudson/Jenkins can handle the checkout of the code from version control for you.
If you are really set up the build process for a team of developers, then
you should use Jenkins to manage your builds and either Maven or Ant to perform the actual build. If you have multiple projects, Jenkins can manage all of them. And Jenkins gives you a nice, centralized way to view the build results.