ant-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Peter Reilly" <peter.kitt.rei...@gmail.com>
Subject Re: Scope of scripts -> workaround
Date Fri, 28 Apr 2006 16:37:49 GMT
Each script command creates a new BSFManager, so
there is little sharing between the scripts.
(This is a different model from HTML + script)
The only sharing is via ant core objects (references
or properties or (as Alexey indiciates) tasks/types.

Peter



On 4/28/06, Marcel Ruff <mr@marcelruff.info> wrote:
>
> Alexey N. Solofnenko wrote:
> > Can you use <scriptdef> instead? See:
> > http://ant.apache.org/manual/OptionalTasks/scriptdef.html .
> i have tried already with no success (probably not hard enough :-),
>
> thanks,
> Marcel
> >
> > - 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
> >
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: user-unsubscribe@ant.apache.org
> For additional commands, e-mail: user-help@ant.apache.org
>
>

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