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]