Re: maven.
Re: maven.
- Subject: Re: maven.
- From: Henrique Prange <email@hidden>
- Date: Fri, 03 Apr 2009 13:20:33 -0300
Hi Mike,
Mike Schrag wrote:
man, maven people .. i'm trying .. I really am ..
That is really nice to hear. :)
I don't like being the
guy who just hates something based on impressions and not experiences,
because I think that's how lots of people judge WO ... but I'm reading
"http://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html"
-- Which is like "The Introduction to the Overview" and I mostly already
want to kill myself.
You should really start reading the book Maven: Definitive Guide [1].
It's free and contains most information you need to understand the
basics about Maven in one place. And you don't have to read the entire
book to understand most of the Maven concepts.
I really don't know what it is about maven, but
it's like someone tried to come up with the most complex solution to
these problems they could. Every sentence just introduces some new
layer -- it's like a build system composed of Matryoshka. I have the
distinct impression that one could solve 75% of this problem with 10% of
the complexity.
If you don't have to write any Maven plug-in, the complexity is almost
imperceptible. In fact, everything will be much more simple. Your
projects will have the same behavior when you have the same kind of
configuration (most cases). And this configuration can be inherited. You
have to write less configuration and the declarative way of writing
Maven configuration is much more informative.
In Ant you say "how to make the project produce things". In Maven you
say "what the project is". Maven takes care of do what it have to do, in
most cases.
I think Maven's trying to solve 100% of the problem and
they get where they are. All I really want is my ant build file to
build or download dependencies first. I would say I basically want Ivy,
except that kind of pisses me off, too.
As you said, if you only want the dependency management stuff, you don't
need Maven. You want Ivy or Maven Ant Tasks [2].
The Maven dependency management mechanism really shines. But Maven goes
beyond that.
Ivy is like a couple of Maven
guys split off to write a different solution to 98% of the problem
instead of 100%.
If you keep studying Maven, you'll realize Ivy solves 10% of the problem. :)
I think this is the problem with Java vs Ruby people. The Rails
community is happy to put out a framework that is simple and narrowly
focused. It seems to me that the Java community isn't happy unless
every level of the framework is a dependency-injected pluggable
framework for building frameworks. Where's my simple dependency
manager? Where's my ant task that just lets me say:
<dependencies>
<dependency name="log4j" version="1.2.14" source="someMavenRepo"
dest="Libraries"/>
<dependency name="MyCustomFramework" version="latest"
source="myRepo" dest="${wo.local.frameworks}"/>
</dependencies>
Well, using Maven Ant Tasks you will have to add something like that to
your build.xml.
<artifact:dependencies pathId="dependency.classpath">
<dependency groupId="log4j" artifactId="log4j" version="1.2.14"/>
<dependency groupId="your.company" artifactId="MyCustomFramework"
version="1.0-SNAPSHOT"/>
</artifact:dependencies>
It is similar. The repository configuration goes in a separate section.
Each project has their particularities. Those tools normally try to
provide a solution that is not restricted to toy problems. In most
cases, some kind of complexity must be added to increase the reuse.
IMHO, that is why Eclipse is cool, Maven is cool, Ant is cool and other
Java tools and frameworks are cool. Because if you can't solve your
specific problem with the provided solution, you just have to make few
changes to achieve your goal. And the base solution can evolve, making
your own little modification even better over time (of course, by means
of API changes and other things that makes us feel really sad).
And you can always produce your own solution. I choose Maven in the past
exactly because I don't want to create proprietary solutions that only
members of my team can understand. When I say proprietary solution I
mean name standards, layout structure, configuration and etc.
Ant does everything else I care about. I hate ant, don't get me wrong,
but it's pretty straightforward. I understand Maven is trying to do a
lot more, and that's super great and all, but I don't WANT that.
So, you will probably be frustrated using it. I choose Maven because of
the concepts behind the tool. Not because of the tool itself. I wanted
the discipline and the restrictions imposed by the Maven lifecycle. Most
of Maven restrictions I found made me improve the software development
process on my company.
I'm not saying Maven is perfect or the best tool for every project. Far
way from that. Ferrari is cool, but there are a lot of places where
walking by foot is desired (or the only possible way). You really have
to figure out what you desire first.
I'm
not sure MOST people want that. I'm sure SOME people want that, and
they are probably loving it.
As other people have presented doubtful statistics about Ant vs. Maven
in the past, I'm feeling free to show a comparison between Ant and Maven
mailing lists statistics [3] and make a very doubtful conclusion: people
prefer Maven to Ant. :)
Ant subscribers: 969
Maven subscribers: 1774
Ant Total posts: 19011
Maven Total posts: 70980
Ant mean posts / day: 13.45
Maven mean posts / day: 50.30
I can even sort of maybe get behind their project layout .. After you
stare at it for a while, it sort of makes sense why it's like that.
I didn't like the project layout when I started using Maven. This kind
of discipline "imposed" seems bad and annoying in the beginning. But
after sometime, it make sense and show its benefits.
Anyway. I'm TRYING not to hate, but I am just not feeling it.
As Pascal said to Chuck, maybe I can change your mind at WOWODC. ;)
[1]http://www.sonatype.com/books/maven-book/reference/
[2]http://maven.apache.org/ant-tasks/index.html
[3]http://people.apache.org/~coar/mlists.html
Cheers,
Henrique
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
References: | |
| >maven. (From: Mike Schrag <email@hidden>) |