ant-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject Re: Time-based dependencies
Date Wed, 12 Jul 2000 18:53:32 GMT

You need the latest CVS version of Ant my friend. :-) Stefan just commited
an "unless" attribute to Target, which executes the target _unless_ the
named property exists.  It doesn't solve your timestamp problem, but it
does get you a step closer.

So something like the following should work:

<target name="init">
  <available file="" property="" />

<target name="download_foo" unless="" depends="init">
  ... do your download stuff

As for the time dependancy problem, why would you have a foo.bat newer than  Are you making local modifications to the file, but expecting
them to be updated in the zip at a later date?

Glenn McAllister
TID - Software Developer - VisualAge for Java
IBM Toronto Lab, (416) 448-3805
"An approximate answer to the right question is better than the
right answer to the wrong question." - John W. Tukey

Please respond to

To:        "''" <>
Subject:        Time-based dependencies

I have an application that

1. downloads file from the web
2. unzips
3. runs foo.bat that came from

If foo.bat already exists and is newer than, I don't need to do
step 2.
If is already downloaded, I don't need to run step 1.

How can I set up my build.xml to only do the minimum required, based on the
existence and file time comparisons that a makefile would do?

The solution doesn't seem to relate to the target "depends" attribute,
because that only refers to whether the other target has been executed in
the current Ant project.  The "available" task can be used to set a
property if a file *exists*, but not if it does *not* exist or if it is out
of date.  Similarly, the target "if" attribute causes a target to be run if
a property exists, but not if it does not exist.

What I think I need is something like

<target name="run" depends="unzip">...</target>
<target name="unzip" depends="download"
<target name="download" if="foo.zip_does_not_exist">...</target>

Am I missing something obvious?  make handles this easily.

Phil Hanna
E-Commerce Solutions
SAS Institute, Inc.
(919) 677-8000 x4284

View raw message