Just to supply some more input to this thread:
I have just switched one of our bigger seam projects which had a pretty sophisticated ant
build script to Maven 2. It took me (never used Maven (1|2)) slightly more than a day.
It works but I'm not as impressed as many others:
1.) The maven plugins are buggy. No, I mean BUGGY. And they are pretty unflexible. This
means that you have to do things just the maven way. The combination of these is nasty
because it means there are hardly any wok-arounds availabe. If you are hit by a bug there
are very few alternative routes to reach your "goal".
(However, I have to admit that I like the strict layout that is required by maven
projects. I think this is the right approach in the long run.)
2.) The feature where Maven really shines is its dependency management. Well, in theory it
is. The idea behind the dependecy management is good but in real life it falls short of
its promise.
The problem seems to be that the complete dependency chain can only be resolved if all the
projects are build using Maven 2 which is obviously not the case. In all other projects
the dependencies have to be supplied manually and hardly anybody seems to bother about
this.
This thread is a good example: Everybody is traing to give a complete list of all
dependencies. But I think this is not the right appoach: Rather one should look on which
libraries Seam directly depends. This should be put in a repository and have then their
dependencies marked in their pom file etc. until we have a complete chain of
dependencies.
(BTW: Is there a way to change the scope of a transitive dependency. Many of the libs
which are required to deploy a seam app in Tomcat are not required for JBoss etc. So is it
possible to build a war for tomcat and one for JBoss which contain different sets of
libraries, by switching the profile for example?)
For 95% of the files in the repositories this is not the case so you have to take adjust
the dependecies for every project manually down the chain.
(I have lessened this pain to some extend by building my own company repository which I
would recommend to anybody using Maven.)
3.) Versioning of interdependent projects is a weakness if you don't use the maven 2
release plugin (s. 1.)). But I have no idea how to use it with subversion to set checkout
numbers, for example. (I would be thankful for some input here).
4.) Documentation is poor. I admit there is lots of it but even the plugins home pages
don't have much more information then an autogenerated list of parameters. There is
hardly any examples etc.
So Maven is allright but nothing to go crazy about. It strength lies in sharing dependency
information with others. This is very useful for me as some parts of our project are not
developed inhouse and this was the main reason I decided to switch.
But if you don't need that feature and you have a working ant build or are familiar
with ant then it is hardly worth the trouble to switch.
Regards
Felix
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3996980#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...