Jon Skeet wrote:
This is a similar issue with the xalan classes in the 1.4 jdk. they're exposed directly by sun (and other jvm's) as org.apache.*. basically they just imported xalan and possibly other apache classes into the jvm. this gives your entire application (jvm) one chance to override the version used by using the extensions folder. not very good when you have multiple web applications that each need a specific version of xalan or what not. i believe sun has fixed this issue in 1.5 jdk's with a method similar to what i did to get optional ant tasks work w/o modifying the target environment.


<snip>

Thanks - I'll bear it in mind as an option. I think for the moment it'll
be easier just to copy junit into place and accept that the very first
build on a clean system won't work (or will need to bootstrap itself
somehow).


it's nice that ant provides tasks for things they can't or won't bundle with their distribution, but i would really like to see ant distributed at least with the same tasks able to be defined externally. i'd be more than willing to help with this. what i would envision is ant providing in addition to it's ant/lib folder, a ant/lib/external folder or perhaps an ant/external/lib folder that contains the same tasks in an external.org.apache name space. this external lib folder would not be loaded by the default ant classloader, but would be available for users to include libs as
needed.    i don't like much the <scp> .vs. <m_scp> issue, and it
would be very nice if both taskdefs could define a <scp> or <junit> task w/o any collision. i'm not sure how that would work.


I think if Ant provided a property for its "home" location (it doesn't
now, does it? I suppose ${env.ANT_HOME} works, but it's hardly neat),
that's all that would be required. Have the jar files somewhere they're
not loaded by default, and we could easily taskdef using a classpath
which included the right libraries.

${ant.home}/lib
${user.home}/.ant/lib



Perhaps there should be multiple distributions, even - one "bundled" one
and one without any of the optional tasks. Obviously it's easy enough to
modify a distribution so that it doesn't have things, but for ease of
upgrade, being able to take a "stock" distribution is important.

fetch.xml in the cvs head bootstraps in maven2's library tasks and uses that to retrieve other things.

-steve

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to