I thought that was the way that runtarget worked so I think that you are
correct, there must be something else. I will check further to see.  I
will also look at the use of macros.  Sometimes it is hard for me to
think of things in the "ant" way.  I appreciate you help.

Eric 

-----Original Message-----
From: Peter Reilly [mailto:[EMAIL PROTECTED] 
Sent: Friday, September 21, 2007 9:49 AM
To: Ant Users List
Subject: Re: Best way to perform this type of conditonal test in ANT

The "ant" way is not to think in terms of calling targets, it is more
in-terms of invoking a target, and the target reads it's dependences.

In ant 1.6 the unit of reuse/encapsulation/block would be a macro.

I would use a macro instead of each of your pmd targets, and call them
directly from the pmd target.

...
However with <antcontrib> the runtarget does not set up a new ant
project context, so the properties set in them are visible afterwards,
so there must be something else wrong with your script.

For example:
<project default="abc" xmlns:ac="antlib:net.sf.antcontrib">
  <target name="abc">
    <ac:runtarget target="runme"/>
    <echo>${set_in_runme}</echo>
  </target>
  <target name="runme">
    <property name="set_in_runme" value="hello world"/>
  </target>
</project>

Buildfile: /work/reilly/learning/a/runtarget/build.xml

abc:

runme:
     [echo] hello world

BUILD SUCCESSFUL
Peter

On 9/21/07, Eric Wood <[EMAIL PROTECTED]> wrote:
> Thanks,
>
> I have created a bunch of targets for PMD that I would like to keep, 
> so the question is how do I call these targets from the "pmd" target 
> while still keeping the conditional clause?
>
> I found that if I use antcall (or runtarget like in the code below), 
> then properties that are set that I want to reference later are 
> unavailable.  How do I " ... do pmd stuff" by invoking other targets?
>
> Eric
>
> -----Original Message-----
> From: Peter Reilly [mailto:[EMAIL PROTECTED]
> Sent: Friday, September 21, 2007 9:27 AM
> To: Ant Users List
> Subject: Re: Best way to perform this type of conditonal test in ANT
>
> Opp, I hit send by accident, (gmail does not have the same key 
> shortcuts as emacs).
> <project>
>    <target name="init">
>        <available file="lib/pmd.jar" property="pmd.jar"/>
>    <target>
>    <target name="pmd" depends="init" if="pmd.jar">
>      ... do pmd stuff
>    <target>
> </project>
>
>
>
> On 9/21/07, Peter Reilly <[EMAIL PROTECTED]> wrote:
> > <project>
> >    <target name="init">
> >       <available file="lib/pmd.jar" property="pmd.jar"/>
> >    <target>
> >
> >
> >
> > On 9/21/07, Eric Wood <[EMAIL PROTECTED]> wrote:
> > > I want to only call a target ( _pmd ) if the property "pmd.jar" is
> set.
> > >
> > >     <target name="perform-pmd" if="pmd.jar" >
> > >         <runtarget target="_pmd" />
> > >     </target>
> > >
> > >     <target name="_pmd"
> > > depends="pmd-init,find-pmd-java-files,modified-java-pmd,new-java-p
> > > md
> > > " />
> > >
> > >
> > > The problem I have with the code above is that runtarget seems to 
> > > run in its own JVM so properties that are set in there that I need

> > > to reference later are not available after it runs.  Also, if I 
> > > add the "if" clause to the _pmd target, the depends are processed
first.
> > >
> > > How do I best handle the conditional execution of a target without

> > > using either antcall or runtarget?
> > >
> >
>
> ---------------------------------------------------------------------
> 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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to