Re: Maven Optimism

From: Chuck Hill (chil..lobal-village.net)
Date: Wed Jul 09 2008 - 00:24:19 EDT

  • Next message: Lachlan Deck: "Re: Maven Optimism"

    Anjo: 1 Maven: 0

    :-P

    On Jul 8, 2008, at 9:16 PM, Anjo Krank wrote:

    >
    > Am 09.07.2008 um 02:05 schrieb Pierce T.Wetter III:
    >
    >> To give you some examples, for the current Wonder Ant builds,
    >> between build.xml files, generic.xml, build.properties
    >> files, .classpath and .patternset files, there are 5320 lines of
    >> build configuration information in the current Wonder build. The
    >> equivalent pom files are 2447 lines, which is not only more
    >> efficient, but includes more information to help avoid the
    >> jarmeggedon/jarhell problem.
    >
    > Rubbish.
    >
    > First, the build files are *way* lighter:
    >
    > macbook:build ak$ wc build-doc.xml build.xml default.properties ~/
    > Wonder/build.xml generic.xml
    > 158 383 7291 build-doc.xml
    > 814 2168 40453 build.xml
    > 23 64 524 default.properties
    > 88 241 3358 /Volumes/Home/Wonder/build.xml
    > 502 1547 24262 generic.xml
    > 1585 4403 75888 total
    >
    > All other files are simply a convenience in case some nut wants to
    > build the individual jars. In particular, all individual build files
    > are only symlinks to Build/build/build-<type>.xml and derive their
    > values from a build.properties in that directory.
    >
    > Also, you shouldn't *really* count the ~/Wonder/build.xml which is
    > again only a convenience that allows you to build only the stages
    > you want without using "ant -f Build/build/generic.xml foo.bar
    > foo.baz"
    >
    > These 1500 lines build *all* of Wonder in the way you specify, with
    > the values you specify and the order you specify. *And* they allow
    > you to specify your own builds with just a build property and a
    > symlink to a build file. You could also use includes or or add your
    > own customizations, but the tasks they do are very light.
    >
    > Attached below is an example.
    >
    > Second, the individual build files build way more projects:
    >
    > macbook:Wonder ak$ find . -name build.xml|wc
    > 67 67 2775
    > macbook:Wonder ak$ find . -name pom.xml|wc
    > 56 56 2121
    >
    > So while the difference is only 600 lines:
    >
    > macbook:Wonder ak$ wc `find . -name pom.xml`|tail -1
    > 2152 2438 66007 total
    >
    > It's still more than zero (if someone would consider this a measure
    > at all).
    >
    > Thirdly from what I've seen, someone needs to change all these files
    > whenever we bump a version. All of Ulrichs commits so far where
    > these xml fixes. All *I* need to do is set one property.
    >
    > Fourth, adding a project typically requires five lines in Build/
    > build/build.xml to add it to the correct group and some props. I
    > might consider moving these props from the build file to a
    > build.properties and making Build/build/build.xml only specify the
    > inter-related deps.
    >
    > I'll grant you one point for the commons-logging versions, but I use
    > neither ERJGroups or EROpenID. If I were and I'd be bothered, I'd
    > figure out a way to keep them using only one.
    >
    > So far we've seen that maven is neither more terse nor more powerful
    > (at least in a way that would mean something to me).
    >
    > The other issues I have with it is that I actually *need* the
    > flexibility in deployment structure. In some projects I *don't* want
    > all-embedded builds as that stuff goes out of hand with 7 apps*all
    > the frameworks. The resulting release tops 250M. So I want some of
    > them embed only some jars. Show me how this works with maven
    > *without* writing any "goals" or "mojos".
    >
    > So in summary, maven may or may not be nice. But I've been building
    > Wonder with the build files for 7 years now and they haven't really
    > changed a lot in this time. They do the roughly the same as some
    > 20MB tool chain where you *still* have to write java plugins for.
    >
    > I'll leave the conclusions to you.
    >
    > Cheers, Anjo
    >
    > Example:
    >
    > <project name="FrameworkBuild" default="all" basedir=".">
    > <xmlproperty file=".project"/>
    > <property name="project.name" value="${projectDescription.name}" />
    > <property file="build.properties" />
    >
    > <target name="clean">
    > <ant antFile="Build/build/build.xml" target="$
    > {project.name}.all" dir="../../../">
    > <property name="build.action" value="clean" />
    > </ant>
    > </target>
    > <target name="build">
    > <ant antFile="Build/build/build.xml" target="$
    > {project.name}.all" dir="../../../">
    > <property name="build.action" value="build" />
    > </ant>
    > </target>
    > <target name="install">
    > <ant antFile="Build/build/build.xml" target="$
    > {project.name}.all" dir="../../../">
    > <property name="build.action" value="install" />
    > </ant>
    > </target>
    > <target name="web">
    > <ant antFile="Build/build/build.xml" target="$
    > {project.name}.all" dir="../../../">
    > <property name="build.action" value="web" />
    > </ant>
    > </target>
    > <target name="all" depends="clean, build, install, web" />
    > </project>
    > _______________________________________________
    > Do not post admin requests to the list. They will be ignored.
    > Webobjects-dev mailing list (Webobjects-de..ists.apple.com)
    > Help/Unsubscribe/Update your Subscription:
    > http://lists.apple.com/mailman/options/webobjects-dev/chill%40global-village.net
    >
    > This email sent to chil..lobal-village.net
    >

    -- 
    

    Practical WebObjects - for developers who want to increase their overall knowledge of WebObjects or who are trying to solve specific problems. http://www.global-village.net/products/practical_webobjects



    This archive was generated by hypermail 2.0.0 : Wed Jul 09 2008 - 00:25:07 EDT