Ivy or Maven

Hello everyone,
I’m just starting out with Vaadin. I have background in Microsoft Visual Studio, .NET and C# but not in Java, Eclipse etc.

I’m following book of Vaadin and it is not clear to me do I need both Ivy and Maven? I’ve read some articles online which say that Ivy + Ant is comparable to Maven, which should mean that I need only one. Which one is better for small to medium projects developed mostly by one person?

You only need one of them. If you use eclipse and the Vaadin Plug-in for Eclipse you already have Ivy as it is bundled in that Plug-In. To get Maven in your eclipse you need to download the m2eclipse Plug-In (which might already be in your eclipse depending on which version you’re using).
I think there is not really a better one.
I prefer Maven but only because I startet with Vaadin before Ivy was bundled with or and before the Vaadin Directory offered an Ivy dependency. When Ivy was then integrated there were a few bugs/problems with which are probably fixed now but they stopped me from switching…and now all my Dev Enironments are set up to use Maven.
As far as I know even the Vaadin Dev Team is splitted when it comes to using Ivy or Maven.

The fundamental difference is that Ivy is a dependency management system that keeps its hands off from building etc. while Maven is dependency management + build system + software project management system that enforces a number of conventions.

Which one to choose stongly divides opinions. If you want more information, I’d recommend googling “ivy vs maven” - from the point of view of Vaadin, either can be used. Personally, I have started to prefer Maven for new projects, but adapting an existing project for Maven can be a tough task.