• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: maven.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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


  • Follow-Ups:
    • Re: maven.
      • From: Chuck Hill <email@hidden>
    • Re: maven.
      • From: Mike Schrag <email@hidden>
    • Re: maven.
      • From: Henrique Prange <email@hidden>
    • Re: maven.
      • From: Mike Schrag <email@hidden>
References: 
 >maven. (From: Mike Schrag <email@hidden>)

  • Prev by Date: Re: maven.
  • Next by Date: Re: maven.
  • Previous by thread: Re: maven.
  • Next by thread: Re: maven.
  • Index(es):
    • Date
    • Thread