I would prefer the <fileset>-extension of <taskdef> as DD suggested.
Combined with <import> could ensure, that all antlibs are in.
common.xml
----------
<taskdef>
<fileset dir="${ant.home}/auto-antlibs" includes="**/*.jar" />
</taskdef>
Do the WAS buildfiles use <import>s? Then this would be only a modification of
one file.
Jan
>-----Ursprüngliche Nachricht-----
>Von: Steve Loughran [mailto:[EMAIL PROTECTED]
>Gesendet: Montag, 12. September 2005 12:01
>An: Ant Developers List
>Betreff: Re: Antlib autoloading (was Re: cvs commit:
>ant/src/testcases/org/apache/tools/ant/taskdefs AntlibTest.java)
>
>Jeffrey E Care wrote:
>> I don't normally speak up on the developer list, but I thought this
>> discussion could benefit from the experience of a *very
>large* product
>> that uses Ant to build.
>>
>> We use Ant + our own extensions (Mantis) to build WebSphere
>> Application Server (and a good number of the stack products
>as well).
>> The Mantis extensions allow for build modularization both on a
>> fine-grain (called
>> "component") and a coarse-grain (called "functional element") scale;
>> Mantis also has tasks that manage the dependencies between these
>> modular units, for purposes of constructing classpaths, scheduling
>> build order, etc.
>>
>> Given that our build is modular, as you might expect we have many
>> hundreds of individual build.xml files in WAS. With that many files
>> it's difficult to ensure that everyone is declaring typedefs
>> correctly, so prior to our adopting Ant 1.6 we were modifying an Ant
>> 1.5.4 distribution to always include the Mantis tasks in
>> oata.tasks.defaults.properties; it was just easier for our
>users that
>> way. Now that we're on an Ant 1.6.5 base we're using namespaces +
>> antlibs to make the Mantis tasks available, which IMO is better than
>> doing a typedef, but on a large scale it's still difficult
>to ensure that everyone is doing the right thing.
>>
>> So, with all of that in mind, I really do like the suggestion of
>> autoloading type & task definitions from META-INF/antlib.xml; I also
>> understand Dominique's concerns about transparency & staying
>in control.
>> Perhaps this behavior could be controlled with a
>command-line switch,
>> say "-autoload" or something along those lines, such that
>the default
>> behavior would be as it is today (i.e. no autoloading), but by
>> specifying the switch Ant could search its classpath to discover the
>> antlibs. This would also yield a nontrivial performance enhancement,
>> as currently each of our modules is effectively reloading
>our antlib,
>> whereas I would think that autoloading would be done once
>(when Ant is bootstrapped).
>>
>
>This sounds like the largest Ant build project I've heard of,
>excluding
>Gump itself, which is so loosely coupled it doesnt really count. We
>have, what, 30 build files in ours and I am still struggling to deal
>with refactoring it to be more effective. The big problem I
>have in mine
>is that with a single ${root.dir}/common.xml containing most stuff, it
>is inordinately brittle. So I am breaking it into separate build files
>with lots of cross <imports>, mandatory namespace declarations for all
>tasks, presets, etc.
>
>My project rework proposal is here:
>
>http://cvs.sourceforge.net/viewcvs.py/*checkout*/smartfrog/core
>/antbuild/doc/third_generation_build_process.sxw
>
>for anyone who wants to view and comment.
>
>I hadnt thought about autoloading; I am happy with explicit loading of
>stuff into their own namespaces, but want to make it easier
>for projects
>to get access to my definitions (or even importable libraries)
>
>-steve
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: [EMAIL PROTECTED]
>For additional commands, e-mail: [EMAIL PROTECTED]
>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]