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

Reply via email to