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#3996980

Reply to the post : 
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3996980
_______________________________________________
jboss-user mailing list
[email protected]
https://lists.jboss.org/mailman/listinfo/jboss-user

Reply via email to