ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Alexey N. Solofnenko" <A.Solofne...@mdl.com>
Subject Re: Scope of scripts -> workaround
Date Fri, 28 Apr 2006 15:28:04 GMT
Can you use <scriptdef> instead? See: 
http://ant.apache.org/manual/OptionalTasks/scriptdef.html .

- Alexey.

Marcel Ruff wrote:
> After fiddling further i have found this workaround:
>
> -----------------
>   <target name="pre">
>      <script language="javascript">
>         var expr = 'function doPrecond() { project.log("HELLO 
> PRECOND"); }'
>         project.setProperty("expr", expr);
>      </script>
>   </target>
>
>   <target name="t" depends="pre">
>      <script language="javascript">
>         eval(""+project.getProperty("expr"));
>         doPrecond();
>      </script>
>   </target>
> ---------------------
>
> 1) Setting a property "expr" to transport the script
> 2) Executing the script in the calling task "t"
>    Note that without the  ""+  at the beginning of eval() it does not 
> work
>
> I hope this helps others, like this it is possible to collect
> precondition code at a single place.
>
> But still I'm wondering about the scope of scripts ...
>
> thanks
> Marcel
> http://www.xmlBlaster.org
>
> Marcel Ruff wrote:
>> Hi,
>>
>> i have defined a javascript function in a "pre" task,
>> but when i want to call it later i get:
>>
>>   ReferenceError: "doPrecond" is not defined
>>
>> Here is the xml, i call it with 'ant y':
>>
>> ---------------------
>>   <target name="pre">
>>      <script language="javascript">function doPrecond() { 
>> project.log("HELLO PRECOND"); }</script>
>>   </target>
>>
>>   <target name="y" depends="pre">
>>      <script language="javascript">doPrecond();</script>
>>   </target>
>> ---------------------
>>
>> Any ideas?
>>
>> Thanks
>> Marcel
>> http://www.xmlBlaster.org
>>
>> Note: This works fine:
>>    <target name="z">
>>       <script language="javascript">
>>          function doPrecond() { project.log("HELLO PRECOND"); }
>>          doPrecond();
>>       </script>
>>    </target>
>>
>> This fails as well:
>>    <target name="r">
>>       <script language="javascript">
>>          function doPrecond() { project.log("HELLO PRECOND"); }
>>       </script>
>>       <script language="javascript">
>>          doPrecond();
>>       </script>
>>    </target>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
>> For additional commands, e-mail: user-help@ant.apache.org
>>
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
For additional commands, e-mail: user-help@ant.apache.org


Mime
View raw message