[jboss-user] [JBoss Seam] - Re: Seam & Maven2

fhh do-not-reply at jboss.com
Sat Dec 30 13:36:50 EST 2006


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



More information about the jboss-user mailing list