ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Conor MacNeill" <>
Subject RE: [PROPOSAL] jar distribution system (was: Re: Jars in CVS ??)
Date Sat, 25 Nov 2000 15:25:44 GMT

> From: Jon Stevens []
> Sent: Saturday, 25 November 2000 12:31
> To:
> Subject: [PROPOSAL] jar distribution system (was: Re: Jars in CVS ??)
> 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"/>
>         </file>
>     </version>
>     <version="1.1" latest="false">
>         <file url="">
>             <depends product="Xerces" version="1.1"/>
>         </file>
>     </version>
> </product>

OK, I like this idea. Rather than duplicate jars into every project, it
allows each project to go and fetch the jars where necessary, from where
they live. More like a web.

> 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"
> version="latest">
> 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.

We wouldn't need to redistribute anyway, since such a task could
conceivably go to the actual home of each jar. For example, why
duplicate junit.jar on when it is available from I think that where a jar is not available as a "direct"
download, such as JMX, taht is whenwe would need to display the
"permission" message.

> 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. :-)

But ant could bootstrap in the components needed for the optional tasks,
such as junit.

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

I'm certainly interested. I see this as a sort of distributed package
manager. Rather than an allfiles.xml, I would see each "product" having
its own file. When the <jpan> task processes that description, it would
download the files of the other products upon which it depends.

<product name="Ant">
  <version="1.2" latest="true">
    <file url=""/>
    <require product="jaxp" version="1.0"
    <optional product="junit" version="3.2"

<product name="jaxp">
  <version="1.0" latest="true">
    	<product name="jaxp_reference" version="1.01" jpanurl="..."/>
	<product name="Xerces" version="1.2.1" jpanurl="..."/>

jpan may have to be interactive. Just kicking around a few ideas :-)


View raw message