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