Good point...  Nice :)

On Tue, 30 Dec 2008, David Weintraub wrote:

Although you are right that Scott can use the <available> task to see
if the target is already created, I suspect Scott would want to run
the <exec> target if one of the dependencies involved has been
updated.

He should look at the <uptodate> task. This allows you to specify a
bunch of dependencies, then if one of those dependencies is newer than
the specified target, a property is then set.

You can then check this property when you execute your actual task.
Normal way to do this is something like this:

<target name="exec-task-test">
   <uptodate
       property="key.already.built"
       target="${keystore}">
        <srcfiles>
            <fileset dir=.../>
        </srcfiles>
    </uptodate>

<target name="execute-task"
   depends="exec-task-test"
   unless="key.already.built">
   <exec ...>
</target>

The AntContrib <outofdate> task is much more flexible and easier to
use. However, you have to install the AndContrib library in your Ant
classpath, and you have to define a <taskdef> in your build file. So,
most people simply opt for the uptodate task.

On Tue, Dec 30, 2008 at 12:13 PM, Scot P. Floess <sflo...@nc.rr.com> wrote:

You can try the following:

Stock Ant:

1) Wrap your call to exec in a target, and place an "if" on the target:

<project>
 <condition  property = "file.found">
   <available  file = "your.file"/>
 </condition>

 <target name="exec"  if = "file.found">
   <exec...>
     ...
   </exec>

   <touch  file = "your.file"/>
 </target>
</project>

2) Use AntContrib's if task:

<project>
 <!-- include Ant Contrib here... -->

 <if>
   <available  file = "your.file"/>
   <then>
     <exec...>
       ...
     </exec>

     <touch  file = "your.file"/>
   </then>
 </if>
</project>




On Mon, 29 Dec 2008, removeps-gene...@yahoo.com wrote:

How can I make the exec task smart enough so that it won't do anything if
the file generated by the task has already been created?

For example,

 <copy file="srcFile.txt" tofile="destFile.txt" verbose="true"/>

does nothing the second time.  Not sure how it works, but maybe if the
timestamp of destFile.txt is equal to or larger than srcFile.txt than
nothing happens.

So what I want is something like a generatedfile argument for exec.  For
example:

  <exec executable="${java.home}/bin/keytool.exe"
generatedfile="${keystore}">
    <arg value="-genkey"/>
    <arg value="-alias"/>
    <arg value="${alias}"/>
    <arg value="-keyalg"/>
    <arg value="RSA"/>
    <arg value="-validity"/>
    <arg value="36000"/>
    <arg value="-keystore"/>
    <arg value="${keystore}"/>
    <arg value="-storepass"/>
    <arg value="${storepass}"/>
    <arg value="-keypass"/>
    <arg value="${keypass}"/>
    <arg value="-dname"/>
    <arg value="${dname}"/>
  </exec>



---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org



Scot P. Floess
27 Lake Royale
Louisburg, NC  27549

252-478-8087 (Home)
919-754-4592 (Work)

Chief Architect JPlate   http://sourceforge.net/projects/jplate
Chief Architect JavaPIM  http://sourceforge.net/projects/javapim

Architect Keros          http://sourceforge.net/projects/keros

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org





--
--
David Weintraub
qazw...@gmail.com

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org



Scot P. Floess
27 Lake Royale
Louisburg, NC  27549

252-478-8087 (Home)
919-754-4592 (Work)

Chief Architect JPlate   http://sourceforge.net/projects/jplate
Chief Architect JavaPIM  http://sourceforge.net/projects/javapim

Architect Keros          http://sourceforge.net/projects/keros

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@ant.apache.org
For additional commands, e-mail: user-h...@ant.apache.org

Reply via email to