You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ant.apache.org by Adam Murdoch <ad...@yahoo.com> on 2000/10/26 14:14:44 UTC

RE: how to make a classpath like "/java/lib/*.jar"? once for a multijavac task build file.

Hi,

You can do this using

<path id="someid">
	<fileset .../>
</path>

<javac ...>
	<classpath refid="someid"/>
<javac>

Note that the classpath must be defined using a <path> element, not a
<classpath> element.


Adam

> -----Original Message-----
> From: Barrie Treloar [mailto:Barrie.Treloar@camtech.com.au]
> Sent: Thursday, 26 October 2000 10:50 AM
> To: ant-user@jakarta.apache.org; emeade@geekfarm.org
> Subject: Re: how to make a classpath like "/java/lib/*.jar"? once for a
> multijavac task build file.
>
>
> On Wed, 25 Oct 2000, Erik Meade wrote:
>
> > Nico posted this a while back when asked 'how to make a classpath like
> > "/java/lib/*.jar"?'
> >
> > >     <javac  srcdir="${build.src}"
> > >             destdir="${build.classes}"
> > >             includes="**/*.java"
> > >             debug="off" optimize="on">
> > >       <classpath>
> > >         <fileset dir="${build.lib}">
> > >           <include name="**/*.jar" />
> > >         </fileset>
> > >         <fileset dir="${build.current}">
> > >           <include name="**/*.jar" />
> > >         </fileset>
> > >       </classpath>
> > >     </javac>
> >
> > Does anyone know of a way to "do this" for the classpath in
> such a way that
> > I don't
> > have to cut and past this into the 13 javac tasks in a build file?
>
> You can do this:
>
>        <!-- Include id attributes to fileset so they can be -->
>        <!-- xml pasted into other tags -->
>
>        <classpath>
>          <fileset id="classpath.build.lib" dir="${build.lib}">
>            <include name="**/*.jar" />
>          </fileset>
>          <fileset id="classpath.build.current" dir="${build.current}">
>            <include name="**/*.jar" />
>          </fileset>
>        </classpath>
>
> And then in another classpath declaration
>
>        <classpath>
>          <fileset refid="classpath.build.lib" />
>          <fileset refid="classpath.build.current" />
>        </classpath>
>
> What is annoying at the moment is that I must define sub-path elements
> to classpath so that I can then textually include them via the refid
> construct.  As thats all the refid does, a textual copy of the xml
> structure.
>
> It would be more intuitive if I could give classpath an id and then
> use that as a base to extend from.
>
> Note: the following does not work with ant, I'm hoping someone can
> come up with a way to get soemthing like it to work.
>
>        <!-- A classpath for compilation -->
> 	   <classpath id="classpath>
>           <pathelement location="..." />
>           <...>
>        </classpath>
>
>        <!-- A classpath for testing it just merely  -->
>        <!-- adds the directory where the classes where compiled -->
>        <!-- to the one used to compile the classes, perhaps including -->
>        <!-- some additional runtime jars -->
>        <classpath refid="classpath>
>           <pathelement location="compilation.directory" />
>        </classpath>
>
> The way I have to do this now is to
> 	- somehow wrap the <pathelement> tags into a structure I can use
>       the refid attribute (couldn't work out a way to do this)
>     - cut-and-paste
>     - include the additional values in the compile classpath (even
>       though they are not needed) and then reference that classpath
>       elsewhere.  This isn't any more sophisticated than defining
>       a classpath property and using that in the classpath
>       declarations.
>
> Barrie
> --
> Barrie Treloar
> ____________________________________________________________________
>
>   Barrie Treloar                      Phone: +61 8 8303 3300
>   Senior Analyst/Programmer           Fax:   +61 8 8303 4403
>   Electronic Commerce Division        Email: barrie@camtech.com.au
>   Camtech (SA) Pty Ltd                http://www.camtech.com.au
>  --- Level 8, 10 Pulteney Street, Adelaide SA 5000, Australia. ---
> ____________________________________________________________________
>


_________________________________________________________
Do You Yahoo!?
Get your free @yahoo.com address at http://mail.yahoo.com


RE: how to make a classpath like "/java/lib/*.jar"? once for a multijavac task build file.

Posted by Barrie Treloar <Ba...@camtech.com.au>.
On Thu, 26 Oct 2000, Adam Murdoch wrote:

> Hi,
> 
> You can do this using
> 
> <path id="someid">
> 	<fileset .../>
> </path>
> 
> <javac ...>
> 	<classpath refid="someid"/>
> <javac>
> 
> Note that the classpath must be defined using a <path> element, not a
> <classpath> element.
[del]
> >        <!-- A classpath for testing it just merely  -->
> >        <!-- adds the directory where the classes where compiled -->
> >        <!-- to the one used to compile the classes, perhaps including -->
> >        <!-- some additional runtime jars -->
> >        <classpath refid="classpath>
> >           <pathelement location="compilation.directory" />
> >        </classpath>