ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Steve Amerige <Steve.Amer...@sas.com>
Subject Re: Checking if a Target Exists
Date Thu, 03 Nov 2011 19:05:14 GMT
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.Amerige@sas.com>
> To: Ant Users List<user@ant.apache.org>; Vimil Saju<vimilsaju@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.Amerige@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


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message