I know of no direct way to do it, so how best to complete it depends on the
scope. If you have many such optional directories, I can come up with a couple
ugly things to try.
1) Conditionally define properties that point to the real location, or a dummy
location, depending on the existence of the real location. Then use this
property in your fileset.
<condition property="lib_dir" value="lib">
<available file="lib" type="dir"/>
</condition>
<property name="lib_dir" value="empty_dummy_dir"/>
2) Define each fileset in its own target, and then combine all 10 together in a
separate definition. (Not sure if this would work.)
These are two ideas that immediately come to mind. Maybe there is something
more clever that would be better.
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
Sent: Monday, December 06, 2004 2:19 PM
To: Ant Users List
Subject: RE: fileset fails when base dir is missing
I thought of this, actually. But what puzzles me is how to leverage the
value of "mod_classdir.check", once it has been set (or not set), inside
my path defnition. I could, conceivably, have two path definitions, one
which includes the offendiring fileset, and another which does not,, and
then I could select the appropriate path based on the the value of
mod_classdir.check. However, this approach certainly is not scalable,
since if I had 10 filesets involved, then I would need 1024 different path
specifications.
How would you get to a conditionally included fileset from a conditionally
set property? Does <fileset> have an "if" or "unless" attribute like the
"target" tag does?
"Murray, Mike" <[EMAIL PROTECTED]> wrote on 12/06/2004 01:09:36 PM:
> It sure would be nice, but since it isn't you're left doing it the
> long, and complicated, way. That is, creating additional targets
> with dependencies and conditions to get the desired conditional
> behavior. The property can be set as follows.
>
> <target name="mod_classdir.check">
> <condition property="mod_classdir.exists">
> <available file="${mod_classdir}" type="dir"/>
> </condition>
> </target>
>
> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]
> Sent: Monday, December 06, 2004 1:58 PM
> To: Ant Users List
> Subject: Re: fileset fails when base dir is missing
>
> That's a clever hack, but it won't work well in my situation, since some
> of the filesets may be rooted in directories that cannot be created.
> Wouldn't it be nice if the <fileset> tag had an attribute that allowed
you
> do say, "It's OK if it doesn't exist"? Something like this:
>
> <fileset dir="somedir" if-base-dir-is-missing="ignore">...</fileset>
>
> Anyone else have a good idea?
>
> "Alexey N. Solofnenko" <[EMAIL PROTECTED]> wrote on 12/06/2004
12:44:29
> PM:
>
> > I usually execute <mkdir> in this situation - an empty directory does
> > not affect anything else and makes some commands happy.
> >
> > - Alexey.
> >
> > [EMAIL PROTECTED] wrote:
> >
> > >I am constructing a classpath that includes a fileset. Sometimes,
the
> > >base directory for that fileset does not exist. I would like Ant to
> > >simply accept this as an empty fileset and move on. Instead, Ant
quits
>
> > >with an error, complaining that the directory is not found. How
should
> > >I
> > >resolve this problem?
> > >
> > >In other words...
> > >
> > ><path id="cp">
> > > <fileset dir="lib" includes="**/*.jar"/>
> > > <pathelement location="a.jar"/>
> > > <pathelement location="b.jar"/>
> > > <pathelement location="c.jar"/>
> > ></path>
> > ><javac
> > > destdir="${classes}"
> > >
> > >
> > > <src path="${src}"/>
> > > <classpath>
> > > <path refid="cp"/>
> > > </classpath>
> > ></javac>
> > >
> > >...fails if the "lib" folder does not exist. I would rather have Ant
> > >just
> > >keep on going. Any ideas?
> > >
> > >
> >
> >
> > ---------------------------------------------------------------------
> > 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]
>
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]