ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marcel Ruff ...@marcelruff.info>
Subject Re: Scope of scripts -> workaround
Date Fri, 28 Apr 2006 13:54:35 GMT
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


Mime
View raw message