Maven2 experience and problems
written almost 5 years ago
well my experience with maven is like always not so that I'm happy with it or that I'm unhappy. I got kind of a shared feeling about this software.
A simple example, 7 years ago I started to develop a software which contains several sub modules, sub projects, j2ee components. Basically the usual suspects and I used ant to build all these tools.
Now the year 2008 came and we finally wanted to rewrite the build system since it became more and more complicated to maintain the ant build files.
This was the point when I decided to give maven another try. And it worked well, for parts of it and not so well for other parts.
Basically if you have a simple project with some sub modules and don't do fancy stuff. It works perfectly!
But more about this here:
What I really learned to appreciate was that it keeps every project in the same structure. If you know one maven project, you know them all.
This is a huge plus, since it get's you started much faster with new projects!
Also very nice was the dependency management, at least if you were able to find a repository which has the needed dependencies available. Sadly this is very often not the case or only outdated versions of the dependency. So you end up setting up your own repository for just the libraries which are not available. Once you done this you are very happy for a couple of days...
Now comes the annoying part with maven, you encounter weird problems.
For example, some builds are failing all the time because a sub module is not found. This is particularly the case for projects which have a lot of sub modules, which have even more sub modules.
You go into the directory and build this module + install it. Once you have done this the whole system works again and you can build all you modules again, till you need to update this particularly module.
Which means you write a small shell script which sits in front of maven, till there is a fix available, or you join the project and try to fix it yourself, but sadly I had no time for this so far.
To make things short, maven is still pretty buggy. Which leads to the conclusion that the testing of the software is not perfect.
Now that does not have to be related to the software maven itself. I guess it's more related to the plugins which are available for maven. But should it be really possible for a plugin to break the dependency management of the build system?
I mean I love the concept of the plugins!
Example would be that you want to write you main code with java and for testing and web stuff you use grails/groovy. So you google how todo this and see some wonderful people already wrote a plugin for you! So maven has a very active community and a lot of plugins for nearly all problems. Another big +
Another issue I encountered was that maven tends to break it self with newer version. For example a build which works fine with maven 2.0.5 does not necessarily work with 2.0.9 since 2.0.9 introduced a bug in the release.
I mean shouldn't software be compatible to older versions? Specially if it's not a major release?
After all I love maven and I would never use ant again to build software. The benefits of maven are just to high compared to ant. But I would love it, if I could fight the system a little bit less and things would just work as they are expected.
So can I recommend maven?
this for sure!
Did this review help you?