You are right Steve, that was an error on my part.
________________________________ From: Steve Amerige <steve.amer...@sas.com> To: user@ant.apache.org Sent: Thursday, November 3, 2011 12:05 PM Subject: Re: Checking if a Target Exists Hi Vimil, Thanks for the code! I'm pretty sure the fifth line of the script should be: var targetname = attributes.get("targetname"); I haven't tried running it yet today, but I will test it and let you know how it works. Chris Holman wrote: > <condition property="targetExists"> > <typefound name="${targetName}"/> > </condition> > > I've used this to check for a macrodef, not sure about targets? The conditions <http://ant.apache.org/manual/Tasks/conditions.html> page tells us: "Types include tasks, datatypes, scriptdefs, macrodefs and presetdefs." So, I'm not sure if target is a task. I'll check it out. Thanks to all! Steve Amerige SAS Institute, Deployment Software Development On 11/3/2011 12:02 PM, Vimil Saju wrote: > Here is an example, I havent tested it though > > <scriptdef name="hastarget" language="javascript"> > <attribute name="targetname" /> > <attribute name="property" /> > <![CDATA[ > var targetname = attributes.get("property"); > if(project.getTargets().containsKey(targetname)) { > project.setProperty(attributes.get("property"), "true"); > } > ]]> > </scriptdef> > > the scriptdef can be then invoked as folows > > <hastarget targetname="mytarget" property="targetExists"/> > > the property 'targetExists' will be set to true if the target 'mytarget' is > present in the project. Otherwise it will not be set. > > > ________________________________ > From: Steve Amerige<steve.amer...@sas.com> > To: Ant Users List<user@ant.apache.org>; Vimil Saju<vimils...@yahoo.com> > Sent: Thursday, November 3, 2011 7:27 AM > Subject: Re: Checking if a Target Exists > > > Hi Vimil, > > Thanks for the feedback. Any specifics on just how to do what you > mention (even if untested)? > > Thanks again, > Steve Amerige > SAS Institute, Deployment Software Development > > On 11/3/2011 9:55 AM, Vimil Saju wrote: > I think you can use the scriptdef task to do this. You can write a script > within the scriptdef object to access the methods of the project object. The > project object has methods to list the targets defined under the project, > which you can use to test if a given target exists. > Btw antcall does not launch a new jvm, it only reloads the build.xml. > ________________________________ > From: Steve Amerige<steve.amer...@sas.com> To: Ant Users > List<user@ant.apache.org> Sent: Thursday, November 3, 2011 4:52 AM > Subject: Checking if a Target Exists Hi all, I want to be able to check if a > target exists and hope you can help. I'm looking for a generic solution that > doesn't rely any knowledge of the target name to be checked. It is not > possible to modify the target code. And, I'd like to avoid any solutions > that cause the entire JVM to be loaded (e.g., as with antcall). My > environment is Ant 1.7 and allows for the use of Ant-Contrib and Groovy. Any > ideas on how to do this? Even better, any solutions anyone have to share?! > Thanks, > Steve Amerige > SAS Institute, Deployment Software Development