ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jon Stevens <>
Subject [PROPOSAL] jar distribution system (was: Re: Jars in CVS ??)
Date Sat, 25 Nov 2000 01:30:52 GMT
on 11/24/2000 5:02 PM, "Conor MacNeill" <> wrote:

> I do not support including jars for the optional components. By their nature
> optional components are not required to develop ant nor to use the core
> features of ant.

Uh, the optional stuff is part of Ant though. So, if someone wants to work
on an optional portion of Ant, why not make it easy for them to do so?

> As the number of optional tasks grows, trying to include
> and manage all the supporting jars and their versions will become a
> headache. The incidence of jar version conflict also will increase.
> Duplicating jars from a host of other projects doesn't really make sense to
> me.

The person who is responsible for the optional portion that is in Ant should
simply also be responsible for their .jar file. If their code doesn't get
updated, then it won't matter if the .jar file doesn't either.

> Currently, if I install a number of different projects, I end up with a
> number of versions of ant on my machine. We still get people wondering why
> ant doesn't compile their files with JDK 1.3 because of the ant bundled with
> Tomcat.

Right, so those people who are using that version of Ant to try to compile
there code should expect it to not work. It should be clearly documented
that the version of Ant with Tomcat is X version. Then people can come to
the Ant website and find out that Ant version X+1 handles compiling with JDK

> I think the documentation should state the dependencies and provide a URL
> from which a user can download the appropriate components. I don't think
> that would be too difficult.

I agree that should be handled as well.

> I do agree that the issue is not black and white though. I agree versioning
> is an issue and ant itself is a culprit here. I just don't feel that
> including jars in CVS is the solution.


> BTW, I agree that building Tomcat 4.0 was not easy. The real issue is
> getting JMX from Sun. It worked once for me, but when I tried to get a
> second copy, it stated that it couldn't export that software to my address.
> If the required bits were simple downloads, there would be no real issue.

Exactly. But, they aren't.

What I think would be cool to do is to have a system on
where we allow people to download the .jar files.

I envision something like this:


Then, in that file is a list of URL's to the .jar could look
something like this (not well thought out):

<product name="Ant" permissionToDistribute="true">
    <version="1.2" latest="true">
        <file url="">
            <depends product="Xerces" version="1.2.1"/>
    <version="1.1" latest="false">
        <file url="">
            <depends product="Xerces" version="1.1"/>

<product name="Xerces" permissionToDistribute="true">
    <version="1.2.1" latest="true">
        <file url=""/>
    <version="1.1" latest="false">
        <file url=""/>

<product name="JMX" permissionToDistribute="false">
        Sorry, we do not have permission to distribute this product. You can
        download it from here: <insert url> instead.

Then, we could write a simple Ant Task that would grab the file and then
download the appropriate .jar files as needed.

<jpan url="" product="Ant"

It would then download ant-1.2.jar and xerces-1.2.1.jar.

We could put whatever .jar files we got permission to distribute up there.
If we didn't have permission, then we could have a permission error message
that would tell people where they could download the file from instead.

Note that Ant is a bad example above since there is a catch-22. You can't
download Ant with <jpan> (!CPAN) unless you already have Ant. :-)

So, who volunteers to build such a system? It really shouldn't be that hard
and I think it would be immensely useful.


twice of not very much is still a lot more than not very much

View raw message